jquery中的trigger和triggerHandler區別


我們在jQuery基礎教程之如何注冊以及觸發自定義事件這篇文章中,有用到今天要講的trigger方法。
今天我們來簡單看看jquery中的trigger何triggerHandler方法的區別:
trigger( event, [data] )
在每一個匹配的元素上觸發某類事件。
這個函數也會導致瀏覽器同名的默認行為的執行。比如,如果用trigger()觸發一個’submit’,則同樣會導致瀏覽器提交表單。如果要阻止這種默認行為,應返回false。
你也可以觸發由bind()注冊的自定義事件

 
$("p").click( function (event, a, b) {
  // 一個普通的點擊事件時,a和b是undefined類型
  // 如果用下面的語句觸發,那么a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"]);

 

triggerHandler( event, [data] )
這個特別的方法將會觸發指定的事件類型上所有綁定的處理函數。但不會執行瀏覽器默認動作.
如果你對一個focus事件執行了 .triggerHandler() ,瀏覽器默認動作將不會被觸發,只會觸發你綁定的動作:

為了讓大家更好地理解這兩者的區別,我在網上找來一個很棒的例子: 

<button id="old">.trigger("focus")</button>
<button id="new">.triggerHandler("focus")</button><br><br>
<input type="text" value="To Be Focused">
<script>
$(function(){
    $("#old").click(function(){
        $("input").trigger("focus");
    });
    $("#new").click(function(){
        $("input").triggerHandler("focus");
    });
    $("input").focus(function(){
        $("<span>Focused!</span>").appendTo("body").fadeOut(1000);
    });
});
</script>

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM