我有一个错误,看起来像是由附加了单击事件的事件处理程序引起的:
mxpnl.track_links("#pagebody a", "Click.body");
我想看看如何添加该元素的事件处理程序(以及何时)
我在 Chrome 调试器(开发工具)> 元素中找到了它,然后选择“属性修改时中断”。调试器永远不会中断。
我还选择了它的父 Div(它位于其中)并设置调试器(右键单击元素)> 在子树修改上中断。再说一次,它永远不会破裂。
我在这里做错了什么?
添加事件侦听器并不是属性更改(通常) - 相反,通常它是对addEventListener
or an on
- 任务。所以,监听属性变化是行不通的。
一种选择是猴子补丁addEventListener
以便debugger
运行时addEventListener
使用匹配的参数调用。例如:
// snippet might not actually enter the debugger due to embedded sandboxing issues
const nativeEventListener = EventTarget.prototype.addEventListener;
EventTarget.prototype.addEventListener = function(...args) {
if (this.matches('div') && args[0] === 'click') {
console.log('listener is being added to a div');
debugger;
}
nativeEventListener.apply(this, args);
}
// then, when an event listener is added, you'll be able to intercept the call and debug it:
document.querySelector('div').addEventListener('click', () => {
console.log('clicked');
});
<div>click me</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)