草庐IT

removeEventListener

全部标签

javascript - 是否有必要/建议在尝试删除 eventHandler 之前检查它是否存在?

我有这样的东西:if(something){init();}else{document.addEventListener('CUSTOM_EVENT',init,false);}varinit=function(){document.removeEventListener('CUSTOM_EVENT',init,false);//dostuff}我是否需要在removeEventListener调用周围添加某种检查?如果是这样,我可以这样做:vareventAdded=false;if(something){init();}else{document.addEventListener(

javascript - 为什么在 addEventListener 回调中调用 removeEventListener?

我已经下载了一个JS入门模板。它有一个像这样的default.js文件:(当然,在仅包含元素的html页面中引用了js文件。)(function(){"usestrict";window.addEventListener("load",functionload(event){window.removeEventListener("load",load,false);init();},false);functioninit(){document.getElementById("link").addEventListener("click",showAlert,false);}functi

javascript - element.parentNode.removeChild(element) 之前是否需要 element.removeEventListener()?

假设我的文档中有一组元素,它们是单个对象的子元素。这些元素中的每一个都使用不同的参数注册一个新的事件监听器。如果我丢弃父对象,是否需要手动取消注册所有eventListener?或者浏览器是否跟踪所有事件监听器并在我从DOM中删除元素时丢弃它们?我问的原因是因为跟踪所有事件然后调用removeEventListener非常痛苦。看起来浏览器应该足够聪明,可以解决这个问题,但如果不这样做,我恐怕会泄漏内存。举个例子:varelements=parent.childNodes;varlisteners=[];for(vari=0;i及以后:for(vari=0;i典型的方法是什么?我意识到

javascript - 具有命名函数的 window.removeEventListener 不起作用

我正在使用React,下面是我用来实现无限滚动功能的代码。componentDidMount(){//Flagtocheckifthecontenthasloaded.letflag=true;functioninfiniteScroll(){letenterpriseWrap=$('.enterprise-blocks');letcontentHeight=enterpriseWrap.offsetHeight;letyOffset=window.pageYOffset;lety=yOffset+window.innerHeight;console.log('hey');if(thi

javascript - removeEventListener 不工作

我不知道我做错了什么,但这是我正在做的一个例子,但它似乎不起作用。someDom.addEventListener('mousemove',function(ev){self.onInputMove(ev)},false);someDom.removeEventListener('mousemove',self.onInputMove);removeEventListener代码已执行,但它只是没有删除“mousemove”监听器 最佳答案 removeEventListener删除完全与添加的函数匹配的监听器。在这种情况下,add

javascript - 像 jQuery 中那样的命名空间普通 JavaScript 事件

在jQuery中,当您设置一个事件时,您可以为其命名空间。这意味着(如果您愿意)您可以有多个调整窗口大小的事件,例如,并且能够单独解除绑定(bind)它们而不解除绑定(bind)该选择器上的所有事件。jQuery命名空间示例:$(window).on('scroll.myScrollNamespace,function()...我想知道如何在纯JavaScript中创建命名空间。这显然行不通:window.addEventListener('resize.myScrollNamespace',function()... 最佳答案 如

javascript - 如何删除 javascript 中的事件监听器?

我想知道如何在添加一个事件监听器后删除它,就像您在jquery中使用on和off的方式一样?document.removeEventListener('touchstart');document.addEventListener('touchstart',function(e){closePopupOnClick(e,popup);});但这实际上并没有删除事件监听器。如果我将addEventListener代码放在一个函数中并将该函数传递给removeEventListener它将不起作用,因为您不能将参数传递给该函数。有人知道怎么做吗? 最佳答案

javascript - removeEventListener 的行为

请检查以下代码:varclickfn=function(){alert("clicked");}document.getElementById("div1").addEventListener("click",clickfn,true);clickfn=function(){};document.getElementById("div1").removeEventListener("click");http://jsfiddle.net/qUtzL/4/为什么removeEventListener不起作用? 最佳答案 removeE

javascript - 我怎么知道 removeEventListener 成功了?

有没有办法确认removeEventListener是否成功?我在“播放”/“暂停”事件的视频元素上使用它。我试图实现的行为似乎不一致。这是我如何使用它的示例。varplayListener=function(){console.log("videoisplaying")}videoElement.addEventListener("playing",playListener)我代码中的其他地方videoElement.removeEventListener("playing",playListener)playListener在我使用removeEventListener的地方可用,

vue+elementUi获取滚动条位置、判断是否存在滚动条、addEventListener、removeEventListener、document、window、scroll、client

文章目录1、vue2获取滚动条位置2、vue3获取滚动条位置3、解析4、判断是否存在滚动条1、vue2获取滚动条位置document方式exportdefault{ name:"demo", data(){ return{ scrollTopVal:0, isScroll:0 }; }, mounted(){ this.$nextTick(()=>{ //开启滚动条监听 document.addEventListener("scroll",this.scrollTop,true); letelVal=document.getElementsByClassName
12