javascript - attachEvent 或 addEventListener - 存储在哪里?

标签 javascript jquery events jquery-events

在 jQuery 中,如果我这样做...

$('a').click(function(){
    // Do something 
});

...点击事件存储在 $('a').data('events') 中,我可以像这样获取它:

jQuery.each($('a').data('events'), function(i, event){  
    jQuery.each(event, function(i, handler){
        if(handler.type.toString() == 'click')
        {
            // do something
        }
    });
});

通过 attachEventaddEventListener 附加的事件显然不会出现在 $('a').data('events')。有什么我可以迭代的地方吗?我假设他们在某个地方排队,但我找不到可以为我指明正确方向的文档。

最佳答案

来自 quirksmode :

One problem of the current implementation of W3C’s event registration model is that you can’t find out if any event handlers are already registered to an element. In the traditional model you could do:

alert(element.onclick)

and you see the function that’s registered to it, or undefined if nothing is registered. Only in its very recent DOM Level 3 Events W3C adds an eventListenerList to store a list of event handlers that are currently registered on an element. This functionality is not yet supported by any browser, it’s too new. However, the problem has been addressed.

关于javascript - attachEvent 或 addEventListener - 存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6886792/

相关文章:

javascript - 为什么asp是:LinkButton server side event doesn't fire when clientClick returns true

c# - 如何使用 Jquery Mobile 在 MVC 中动态创建带有 Count Bubbles 的链接

javascript - 如何在嵌套的 .each()(s) 中正确使用 "this"? (JQuery)

c# - 访问派生类中事件的选项有限?

javascript - 除非不同的元素在 AngularJS 中具有焦点,否则隐藏元素的最佳方法是什么?

javascript - angular ActivatedRoute.queryParams 不允许 rxjs 运算符?

javascript - 如何在 AngularJS 中追踪 $watch 模型更新的来源?

php - 在 jQuery 选项卡脚本中默认加载选项卡

jquery - Magento 可配置产品图像缩放问题

javascript - 使用事件监听器发送数据