這個函數也會致使瀏覽器同名的默認行爲的執行。好比,若是用trigger()觸發一個'submit',則一樣會致使瀏覽器提交表單。若是要阻止這種默認行爲,應返回false。
<script type="text/javascript">
$(function(){
$('#btn').bind("click", function(){
$('#test').append("<p>個人綁定函數1</p>");
}).bind("click", function(){
$('#test').append("<p>個人綁定函數2</p>");
}).bind("click", function(){
$('#test').append("<p>個人綁定函數3</p>");
});
$('#btn').trigger("click");
})
</script>
這裏面會自動觸發一次click事件。也就是頁面加載後,就會自動觸發一次。
<script type="text/javascript">
$(function(){
$('#btn').bind("myClick", function(){
$('#test').append("<p>個人自定義事件.</p>");
});
$('#btn').click(function(){
$(this).trigger("myClick");
}).trigger("myClick");
})
</script>
上面的代碼是jQuery中的連寫方式。也會在頁面加載後自動觸發一次myClick事件。$('#btn').click(function(){ $(this).trigger("myClick"); }).trigger("myClick");相似於
$('#btn').click(function(){ $(this).trigger("myClick"); });$('#btn').trigger("myClick"); 並列的寫法。
trigger()方法還能夠傳遞參數。
<script type="text/javascript">
$(function(){
$('#btn').bind("myClick", function(event, message1, message2){
$('#test').append( "<p>"+message1 + message2 +"</p>");
});
$('#btn').click(function(){
$(this).trigger("myClick",["個人自定義","事件"]);
}).trigger("myClick",["個人自定義","事件"]);
})
</script> 在每個匹配的元素上觸發某類事件。還有一個跟trigger差很少的方法,triggerHandler()。
這個特別的方法將會觸發指定的事件類型上全部綁定的處理函數。但不會執行瀏覽器默認動做,也不會產生事件冒泡。
這個方法的行爲表現與trigger相似,但有如下三個主要區別:
* 第一,他不會觸發瀏覽器默認事件。
* 第二,只觸發jQuery對象集合中第一個元素的事件處理函數。
* 第三,這個方法的返回的是事件處理函數的返回值,而不是據有可鏈性的jQuery對象。此外,若是最開始的jQuery對象集合爲空,則這個方法返回 undefined 。
<script type="text/javascript">
$(function(){
$('#old').bind("click", function(){
$("input").trigger("focus");
});
$('#new').bind("click", function(){
$("input").triggerHandler("focus");
});
$("input").focus(function(){
$("body").append("<p>focus.</p>");
})
})
</script>
trigger方法還有可能觸發input的focus事件。而triggerHandler則不會觸發默認事件focus聚焦。
javascript