JavaScript中使用attachEvent() / addEventListener()添加的访问事件

6

如何在JavaScript中访问使用attachEvent() / addEventListener()添加的事件?

应用场景:使用FireBug的控制台调试事件。

3个回答

5

无法访问它们。

根据您尝试实现的目标,更好的调试事件的方法可能是从事件处理程序函数中输出您感兴趣的事件属性...


0
如果您总是使用自定义方法添加和删除处理程序,那么您可以在同一方法中维护它们的日志记录。这样做会增加一些开销。
例如,这里有一个与IE相关的代码片段-
//Run=window.Run || {Shadow:{},nextid:0};

else if(window.attachEvent){    
    Run.handler= function(who, what, fun){
        if(who.attachEvent){

            who.attachEvent('on'+what, fun);

            var hoo=who.id || who.tagName+(++Run.nextid);
            if(!Run.Shadow[hoo])Run.Shadow[hoo]={};
            if(!Run.Shadow[hoo][what])Run.Shadow[hoo][what]=[];
            Run.Shadow[hoo][what].push(fun);
        }
    }
}

who.tagName+(++Run.nextid) 这行的目的是什么?您是否会在稍后使用此日志来释放处理程序? - jayarjo

0

我知道在jQuery中(1.8版本之前),你可以做类似这样的事情

$element.data('events')

而使用 fireQuery,你实际上可以在 HTML 标签中看到处理器 像这样

还可以看到 这个


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接