簡體   English   中英

為什么JQuery不會觸發添加的事件監聽器?

[英]Why JQuery doesn't trigger added eventlistener?

我認識到,該事件處理程序添加了addEventListener ,其中不受$.trigger影響。 這個問題的特殊原因是,我有幾個自行創建的html元素,這些元素無需使用外部庫(僅使用純js)即可實現某些邏輯。 現在在我的主項目中,我想使用這些控件,此外,我還有外部庫,例如jQuery。 現在,例如,我想使用$(element).trigger("change")觸發change事件(記住...事件是通過element.addEventListener("event", function)添加的$(element).trigger("change")

結果:什么都沒發生

當我使用如下代碼時,僅觸發事件:

event = document.createEvent("HTMLEvents");
event.initEvent("change", true, true);
event.eventName = 'change';
element.dispatchEvent(event);

另一方面,jQuery添加了eventhandler,其中也由自定義創建的事件觸發。

現在有個神奇的問題:為什么?

您可以在以下jsfiddle中找到一個小示例。 http://jsfiddle.net/UYyXv/3/

從jquery論壇獲得了解釋

jQuery事件的級別高於本機事件。 觸發偽造jQuery事件。 如果要偽造本機事件,則需要像在問題中所寫的那樣對其進行調用。

簡單的答案,不要使用本地事件。

傑科

你為什么不嘗試

$(SELECTOR).change(function(e){
    e.preventDefault();
    //***DO STUFF HERE***
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM