我必须删除添加到文档中的所有事件侦听器
所以根据THIS POST,我构建了一个这样的函数,但它显示TypeError: document.parentNode is null
!
var msg = document.getElementById('state-msg');
var button = document.getElementById('removeListener');
document.addEventListener('keydown', function(e) {
msg.textContent = 'keydown:' + e.keyCode;
});
document.addEventListener('keyup', function(e) {
msg.textContent = 'keyup:' + e.keyCode;
});
document.addEventListener('keypress', function(e) {
msg.textContent += 'keypress:' + e.keyCode;
});
button.addEventListener('click', function(e) {
var elClone = document.cloneNode(true);
document.parentNode.replaceChild(elClone, document);
});

Press any key and get the message here: <span id="state-msg"></span>
<button id = "removeListener">RemoveListener</button>
&#13;
这可能是一个非常基本的问题,但仍然没有成功,任何评论都会非常感激。
更新
我也尝试了document = elNode
,但没有工作。
答案 0 :(得分:1)
就个人而言,我会为事件监听器命名,因此您可以正确删除它们。
我得到了你想要做的事情。但是,由于这是document
节点,因此您不太可能找到它的父节点。毕竟它是你的DOM树的根。
如果这是您绑定事件监听器的特定元素,那么您的方法将起作用。
$(document).off()
将删除附加的监听器。它可能无法与本机addEventListener方法一起使用。