document.removeEventListener javascript - PullRequest
       1

document.removeEventListener javascript

0 голосов
/ 19 сентября 2018

Как я могу удалить этот тип слушателя?

document.addEventListener("onSomething", function(){
  //Do something
});

при попытке удалить исключение аргумента числа возврата, вызвать функцию во втором параметре, но у меня нет функции.

 document.removeEventListener("customUploadComplete")

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Вам нужно объявить функцию, чтобы удалить ее.Это связано с тем, что вам нужно ссылаться на него после удаления, чтобы браузер мог распознать, какое событие удалить.

Это не будет работать:

btn.addEventListener("click", function() { alert("clicked") });
btn.removeEventListener("click", function() { alert("clicked") });

, поскольку нет ссылки на функцию.Каждая функция уникальна, даже если в них содержится один и тот же код.

Если вы объявите функцию, вы можете сохранить ссылку на эту функцию, а затем удалить ее:

function clickEvent() {
  alert("clicked!");
}
btn.addEventListener("click", clickEvent);
btn.removeEventListener("click", clickEvent);

Вотпример:

let $ = document.querySelector.bind(document),
  btn = $("#b1"),
  add = $("#b2"),
  remove = $("#b3");

function clickEvent() {
  alert("click");
}

btn.addEventListener("click", clickEvent);

remove.addEventListener("click", function() {
  btn.removeEventListener("click", clickEvent);
   alert("event removed!");
});

add.addEventListener("click", function() {
  btn.addEventListener("click", clickEvent);
  alert("event added!");
});
<button id="b1">click me</button>
<p/>
<button id="b2">Add Event Listener</button> <button id="b3">Remove Event Listener</button>
0 голосов
/ 19 сентября 2018

Вам нужно сделать ссылку на функцию, чтобы удалить ее.Так что вытащите его в функцию, чтобы вы могли удалить его.

var thisThing = function(){
  //Do something
}

document.addEventListener("onSomething", thisThing);
document.removeEventListener("onSomething", thisThing);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...