JAVA查找事件侦听代码_在调试时或从JavaScript代码中如何在DOM节点上查找事件侦听器?...

我有一个页面,其中一些事件侦听器附加到输入框和选择框。 有没有一种方法可以找出哪些事件侦听器正在观察特定的DOM节点以及针对哪个事件?

使用以下事件附加事件:

原型的 Event.observe ;

DOM的addEventListener ;

作为元素属性element.onclick 。

#1楼

(由于此问题很重要,因此请重写此问题的答案。)

调试时,如果您只想查看事件,我建议...

Chrome开发人员工具的“ 元素”部分:选择一个元素,然后在右下角查找“事件监听器”(与Firefox类似)

如果要在代码中使用事件,并且正在使用1.8之前的 jQuery,则可以使用:

$(selector).data("events")

得到事件。 从1.8版本开始,不再使用.data(“ events”) (请参阅此bug票据 )。 您可以使用:

$._data(element, "events")

另一个示例:在指向控制台的特定链接上写入所有click事件:

var $myLink = $('a.myClass');

console.log($._data($myLink[0], "events").click);

不幸的是,除调试外, 不建议使用$ ._ data ,因为它是内部jQuery结构,并且在以后的版本中可能会更改。 不幸的是,我知道没有其他简单的方法可以访问事件。

#2楼

原型1.7.1方式

function get_element_registry(element) {

var cache = Event.cache;

if(element === window) return 0;

if(typeof element._prototypeUID === 'undefined') {

element._prototypeUID = Element.Storage.UID++;

}

var uid = element._prototypeUID;

if(!cache[uid]) cache[uid] = {element: element};

return cache[uid];

}

#3楼

Chrome,Firefox,Vivaldi和Safari在其开发人员工具控制台中支持getEventListeners(domElement) 。

对于大多数调试目的,可以使用它。

#4楼

如果您拥有Firebug ,则可以使用console.dir(object or array)在任何JavaScript标量,数组或对象的控制台日志中打印一棵漂亮的树。

尝试:

console.dir(clickEvents);

要么

console.dir(window);

#5楼

Opera 12(不是基于最新的Chrome Webkit引擎的) Dragonfly已经有一段时间了,并且显然显示在DOM结构中。 在我看来,它是出色的调试器,也是我仍然使用基于Opera 12的版本的唯一原因(没有v13,v14版本,而基于v15 Webkit的版本仍然缺少Dragonfly)

9130d6f684097e010374dae2acee10ae.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值