这是我的问题:是否有可能检查动态附加的事件侦听器是否存在?或者如何检查 DOM 中“onclick”(?)属性的状态?我已经像 Stack Overflow 一样在互联网上搜索解决方案,但没有运气。这是我的html:
<a id="link1" onclick="linkclick(event)"> link 1 </a> <a id="link2"> link 2 </a> <!-- without inline onclick handler -->
然后在 Javascript 中,我将动态创建的事件侦听器附加到第二个链接:
document.getElementById('link2').addEventListener('click', linkclick, false);
代码运行良好,但我所有检测附加侦听器的尝试都失败了:
// test for #link2 - dynamically created eventlistener alert(elem.onclick); // null alert(elem.hasAttribute('onclick')); // false alert(elem.click); // function click(){[native code]} // btw, what's this?
jsFiddle 在这里。如果您单击“为 2 添加 onclick”,然后单击“[链接 2]”,则事件会很好地触发,但“测试链接 2”总是报告错误。有人可以帮忙吗?
无法检查是否存在动态附加的事件侦听器。
您可以查看是否附加了事件侦听器的唯一方法是附加事件侦听器,如下所示:
elem.onclick = function () { console.log (1) }
onclick然后,您可以通过返回!!elem.onclick(或类似的东西)来测试是否附加了事件侦听器。
onclick
!!elem.onclick