trigger(type,[data])-----簡言之:觸發事件的處理函數和行爲,也就是執行定義事件的執行函數
type:一個事件對象或者要觸發的事件類型
data:傳遞給事件處理函數的附加參數
當相應的事件發生時,任何通過.on()
或一個快捷方法綁定的事件處理程序將被觸發。但是,它們可以用.trigger()
方法。調用 .trigger()
執行處理程序和用戶自然的觸發該事件,他們的執行順序時相同的:
$('#foo').on('click', function() {
alert($(this).text());
});
$('#foo').trigger('click');
從jQuery 1.3開始,.trigger()
事件會在DOM樹上冒泡;在事件處理程序中返回false
或調用事件對象中的.stopPropagation()
方法可以使事件停止冒泡。儘管 .trigger()
模擬了事件的激活,具備合成的 event 對象,但是它並沒有完美的複製自然發生的事件(naturally-occurring event)。
若要觸發通過 jQuery 綁定的事件處理函數,而不觸發原生的事件,使用.triggerHandler()
來代替。
// 提交第一個表單,但不用submit()
$("form:first").trigger("submit");
// 控制視頻播放
$('video').trigger('play');
// 給一個事件傳遞參數
$("p").click( function (event, a, b) {
// 一個普通的點擊事件時,a和b是undefined類型
// 如果用下面的語句觸發,那麼a指向"foo",而b指向"bar"
} ).trigger("click", ["foo", "bar"]);
// jQuery 添加自定義事件以及觸發自定義事件
// 第一個參數是事件的名字,第二個參數是事件發生時執行的函數
$("p").bind("myEvent", function (event, message1, message2) {
alert(message1 + ' ' + message2); // Hello World
});
// //不一定點擊按鈕觸發,也可頁面加載時觸發,也可在滿足某種if條件時觸發
// 觸發自定義事件myEvent,並傳參
$("p").trigger("myEvent", ["Hello","World!"]);