jQuery中值得注意的方法trigger

mtiz7858 8年前發布 | 36K 次閱讀 jQuery Ajax框架

常用模擬

有時,不需要進行操作,也想模擬用戶操作達到某些效果。比如在用戶進入界面后就觸發click事件,而不需要用戶去點擊。

在jquery中可以使用trigger完成。

$("#btn").trigger("click")//觸發id為btn的click事件

$("#btn").click()//簡寫</code></pre>

觸發自定義事件

trigger不僅能觸發瀏覽器支持的這些事件,也可以觸發自定義的事件。比如,綁定一個名為clickMe的事件:

$("#btn").bind("clickMe",function(){
    //....
})

$("#btn").trigger("clickMe")//觸發該事件</code></pre>

傳遞數據

trigger(type,[data])

第一個參數指觸發的事件類型,第二個是要傳遞給事件處理函數的附加數據,以數組形式傳遞。通常可以通過傳遞一個參數給回調函數來區別這次的事件是否為用戶觸發的。

<button id="btn">按鈕</button>
    <p id="msg"></p>
    <script>
        $(function(){
            $('#btn').bind("clickMe",function(event,msg1,msg2){
                $("#msg").text(msg1+' '+msg2)
            })
            $('#btn').trigger("clickMe",["hello","jquery"])
        })
    </script>

效果截圖

執行默認操作

trigger()方法觸發事件后,會執行瀏覽器默認操作。比如

$('input').trigger('focus')

以上代碼不僅會觸發為input綁定的focus事件,也會觸發瀏覽器中默認的focus事件,得到焦點。如果只想觸發自定義的focus事件,使用triggerHandler()

$('input').triggerHandler('focus')

該方法僅僅會觸發input上綁定的事件,并且 取消 瀏覽器對這個事件的默認操作,不會得到焦點。

 

來自:http://www.jianshu.com/p/28cd01e84187

 

 本文由用戶 mtiz7858 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!