jquery之trigger()

這個函數也會致使瀏覽器同名的默認行爲的執行。好比,若是用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

相關文章
相關標籤/搜索