[Javascript] 如何删除元素中的所有侦听器?


Answers

如果你不反对jQuery,这可以在一行中完成:

jQuery 1.7+

$("#myEl").off()

jQuery <1.7

$('#myEl').replaceWith($('#myEl').clone());

这是一个例子:

http://jsfiddle.net/LkfLezgd/3/

Question

这个问题在这里已经有了答案:

我有一个按钮,我添加了一些事件列表:

document.getElementById("btn").addEventListener("click", funcA, false);
document.getElementById("btn").addEventListener("click", funcB, false);
document.getElementById("btn").addEventListener("click", funcC, false);
document.getElementById("btn").addEventListener("blur" , funcD, false);
document.getElementById("btn").addEventListener("focus", funcE, false);

<button id="btn">button</button>

我可以删除它们:

document.getElementById("btn").removeEventListener("click",funcA);

如果我想要一次删除所有侦听器,或者我没有函数引用( funcA ),该怎么办? 有没有办法做到这一点,或者我必须逐个删除它们?