我想我应该看看我现在真的需要多少jQuery。所以我开始更换
jQuery(document).on("keydown.", function(e){...})
与
document.addEventListener("keydown", function(e){...})
我相信一件事很容易,但令我惊讶的是,事件不再被解雇。为了调查这一点,我在控制台中输入了第二个版本。现在它奏效了。 ; - )
当然,这有点不切实际。我宁愿我不必在控制台中输入它......
在代码中,在对DOM进行一些更改后立即添加事件侦听器,这是一些补充。我想麻烦可能与此有关,但我不知道该怎么做。
有什么建议吗?
编辑:感谢大家的评论。在这种特殊情况下,摆脱jQuery会很好(但是当然使用jQuery也没问题)。
我应该说在加载页面后很长时间会添加一些DOM元素,所以window.onload等在这里没用。
我或许也应该说我在最新版本的Chrome中对此进行了测试,为此我对后向兼容性不感兴趣(在这种情况下它太复杂了所以我刚刚放弃了......; - ))。
更新:有人要求代码。这是我刚测试的一个例子:
document.addEventListener("keydown.test", function(e){
console.log("doc.addEL test keydown, e=", e)
});
在HTML元素的属性中查看Chrome开发工具我可以在那里看到事件监听器(带有上面的代码)。它只是没有解雇。好像现在是时候编写另一个bug报告了。 ; - )
答案 0 :(得分:0)
我的坏。我误读了现在可以使用标准语法删除事件处理程序的消息。它们可以,但语法是你将事件+处理函数赋予removeEventListener。
我上面用于事件的语法“keydown.test”不是有效的语法(如果你没有使用jQuery)。
抱歉浪费你的时间。希望有人可以使用答案。