態在我上一篇文章中,如何在JavaScript中創建自定義事件 ,我們討論了自定義事件的好處和本地的託管對象。回顧一下,我們可以解僱自己的命名活動。每當提交有效的消息時,DemonStation頁面提供了一個表格,該表格發出了“ newmessage”事件。任何數量的處理人員都可以訂閱此事件以執行自己的操作。 我們唯一的問題:目前在Safari或Internet Explorer中不支持Customevent。 瀏覽器兼容性問題有很多方法。一種解決方案是編寫您自己的事件封裝功能,以實現自定義事件功能。幸運的是,沒有必要:在包括jQuery在內的幾個JavaScript庫中支持自定義活動。 jQuery的.Trigger方法是關鍵。您可以在任何時候都使用新的類型名稱和任意數據觸發事件,例如
$.event.trigger({ type: "newMessage", message: "Hello World!", time: new Date() });
$(document).on("newMessage", newMessageHandler);
$("#msgbox").on("submit", SendMessage); // new message: raise newMessage event function SendMessage(e) { e.preventDefault(); var msg = $("#msg").val().trim(); if (msg) { $.event.trigger({ type: "newMessage", message: msg, time: new Date() }); } }
// newMessage event subscribers $(document).on("newMessage", newMessageHandler); // newMessage event handler function newMessageHandler(e) { LogEvent( "Event subscriber on "+e.currentTarget.nodeName+", " +e.time.toLocaleString()+": "+e.message ); }
$(document).trigger('mycustomevent');
$(document).trigger('mycustomevent',{key:'value'});
在此示例中,對象{key:'value' } is傳遞給事件處理程序。
$(document).on('mycustomevent',function(event,data){
console.log(data.key); //'value'value'
}) ;在此示例中,在此示例中,提供給.on()方法的功能是事件處理程序。
event.stoppropagation();
});
,stoppropagation()方法可防止事件冒泡。是的,您可以通過在事件對像上調用.preventDefault()方法來防止jQuery中自定義事件的默認操作。這是一個示例:
$(document).on('mycustomevent',function(event){
我只能在jquery中觸發一次自定義事件?
>是的,您可以使用.One()方法而不是.on()方法在jQuery中僅觸發一次自定義事件。這是一個示例:
$(document).One('mycustomevent',function(){console.log('this只能記錄一次。');
});
我可以刪除自定義事件在jQuery中使用的處理程序?這是一個示例:
在此示例中,刪除了文檔上'mycustomevent'的所有處理程序。我可以在jQuery中手動觸發自定義事件嗎?以下是一個示例: $(document).on('mycustomevent',function(){console.log('handler 1');
$(document).trigger('mycustomevent');
在此示例中,'mycustomevent'被手動觸發。
>>我可以將多個處理程序綁定到jQuery中的自定義事件嗎?這是一個示例:
}) $(document)。 2');
});
在此示例中,當觸發“ mycustomevent'”時,將調用兩個處理程序。
>
以上是jQuery trigger()方法:如何在jQuery中創建自定義事件的詳細內容。更多資訊請關注PHP中文網其他相關文章!