jQuery事件工作,普通JS事件不起作用

时间:2018-04-25 13:39:40

标签: javascript jquery d3.js dom-events jquery-events

我遇到了JavaScript中事件处理的奇怪问题。我的大多数活动都使用以下格式正常工作:

var myCustomEvent = new CustomEvent('myEvent', {
    detail: {data: myData}
});
this.element.dispatchEvent(myCustomEvent);

this.element指的是自定义对象中的element变量。此代码将在该对象的一个​​原型函数中调用。相应的事件处理程序如下所示:

d3.select('#container').on('myEvent', function() {
    that.foo(d3.event.detail);
})

此处理程序发生在不同对象的原型函数中。

同样,这通常可以正常工作,但是,我遇到了一些代码不起作用的地方。该事件永远不会触发处理程序。实际上,我设法让事件向处理程序注册的唯一方法是使用jQuery:

$(this.element).trigger('myEvent', [{data: myData}]);

使用事件处理程序:

$(d3.select('#container').node()).on('myEvent', function(e, data) {
    that.foo(data);
})

我意识到这不是一个真正可重复的例子,但我想知道是否有人之前遇到过这样的事情,或者对问题是什么有任何想法。

0 个答案:

没有答案