Поведение removeEventListener
Пожалуйста, проверьте код ниже,
var clickfn = function(){
alert("clicked");
}
document.getElementById("div1").addEventListener("click",clickfn,true);
clickfn = function(){ };
document.getElementById("div1").removeEventListener("click");
Почему removeEventListener не работает?
Спасибо!
2 ответа:
removeEventListener
принимает 2 параметра, событие и функцию для удаления.
Это должно сработать:document.getElementById("div1").removeEventListener("click", clickfn);
Кроме того, функция, которую вы выполняете, пуста.
var clickfn = function(){ };
Вы должны указать точную функцию, которую вы указали для
addEventListener
в качестве второго аргумента. Если вы указали третий аргументuseCapture
, Вам также придется указать тот же самый и эквивалентныйremoveEventListener
.Например:
function myFunc(event){ alert(event.target.textContent); } var myElement=document.getElementById('myElement'); //Add EventListener myElement.addEventListener('click', myFunc, false ); /* ... */ //Remove EventListener myElement.removeEventListener('click', myFunc, false );
↪ посмотрите пример в jsFiddle
Вы можете найти дополнительную информацию на страницеMozilla Developer wiki .