为什么JQuery不会触发添加的eventlistener?

时间:2013-01-09 09:53:06

标签: javascript jquery web event-handling

我已经认识到,事件处理程序添加了addEventListener,但不受其影响 $.trigger。这个问题的特殊原因是,我有几个自己创建的html元素,它们在不使用外部库(只有纯js)的情况下实现了一些逻辑。 现在在我的主项目中我想使用这些控件,并且在那里我有像jQuery这样的外部库。 现在举个例子,我想用element.addEventListener("event", function)触发更改事件(请记住......事件随$(element).trigger("change")添加)。

结果:什么都没发生

当我使用这样的代码时,仅触发事件:

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

另一方面... eventhandler添加了jQuery,其中也由自定义创建的事件触发。

现在神奇的问题:为什么?

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

2 个答案:

答案 0 :(得分:1)

我有一个explanation from the jquery forums

  

jQuery事件比本机事件高一级。触发假货   一个jQuery事件。如果你想伪造原生事件,你需要调用它   正如你在问题中写的那样。

     

简单回答,不要使用原生事件。

     

JΛ̊KE

答案 1 :(得分:0)

你为什么不试试

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