Javascript事件监听器删除

时间:2017-12-07 13:17:32

标签: javascript angularjs

当页面导航到单页应用中的其他页面时,如何删除eventlistener

我在重新访问该页面时遇到此问题,而不是在调用eventlistener

if (window.addEventListener) {
  window.addEventListener("message", listenMessage, false);
  // console.log("false");
} else {
  window.attachEvent("onmessage", listenMessage);
  //console.log("true");
}
var listenMessage = function(msg) {
/**/
}

3 个答案:

答案 0 :(得分:1)

使用removeEventListener删除事件侦听器。

window.removeEventListener("message", listenMessage, false);

在执行attachEvent的情况下执行detachEvent

答案 1 :(得分:0)

window.removeEventListener("onmessage", listenMessage);
window.detachEvent("onmessage", listenerMessage); // For IE

有关更多信息,请阅读文档:
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/detachEvent

答案 2 :(得分:0)

我认为你应该使用布局页面,你的第一页和其他页面应该基于这个布局页面。 之后,您可以描述全局变量 在导航之前,您应该更改此变量的值。 检查变量的值并使用该方法:

document.getElementById("Your_Element_Id").removeEventListener("Your_Listener", your Function);