这是我的问题:是否有可能以某种方式检查动态附加事件监听器的存在?或者我如何检查DOM中"onclick"(?)属性的状态?我已经像StackOverflow一样搜索了互联网,但是没有运气.这是我的HTML:
<a id="link1" onclick="linkclick(event)"> link 1 </a>
<a id="link2"> link 2 </a> <!-- without inline onclick handler -->
Run Code Online (Sandbox Code Playgroud)
然后在javascript中我将动态创建的事件监听器附加到第二个链接:
document.getElementById('link2').addEventListener('click', linkclick, false);
Run Code Online (Sandbox Code Playgroud)
代码运行良好,但我检测连接的侦听器的所有尝试都失败了:
// 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?
Run Code Online (Sandbox Code Playgroud)
jsFiddle就在这里.如果单击"添加onclick for 2"然后单击"[link 2]",则事件会激活,但"测试链接2"始终报告为false.有人可以帮忙吗?
我尝试找到一种方法来检查eventListener窗口中是否已存在,我已经尝试过此类似问题中的解决方案和更多其他解决方案,但对我来说没有任何作用。
这是代码:
checkEvent=function()
{
if('keydown' in window)
console.log('exist');
else
console.log('not_exist');
}
Run Code Online (Sandbox Code Playgroud)
这是我在页面加载上添加的事件监听器
document.addEventListener("keydown", PayKeydownHandler);
Run Code Online (Sandbox Code Playgroud)
但第一个代码返回'not_exist'结果
PS:该函数checkEvent(),我在 ENTER 键的 onclick 中调用它。
有什么帮助吗?提前致谢。