,,关于js中removeEventListener取消事件监听的坑

,,关于js中removeEventListener取消事件监听的坑

很多刚接触前端的人都会遇到removeEventListener无法清除监控的情况。下面文章主要介绍removeEventListener取消js中事件监控的坑。通过示例代码介绍的非常详细,有需要的朋友可以参考一下。

从addEventListener开始,编写代码。

onMounted(()={

window.addEventListener('click ',()={

Dosh (param)//param是参数

})

})

AddeventListener有一个箭头函数回调函数,本身不能传递参数(当然Event除外)。如果要传递参数,只能在doSth函数中上传。我们也可以用函数代替箭头函数回调函数,但是这个函数显然不能有参数。

onMounted(()={

Window.addeventlistener ('click ',dosh)//这个dosh没有参数。

})

要让doSth有参数,可以在函数外面包装一层函数。

设doSth1=()={

多思(参数)

}

onMounted(()={

Window.addeventlistener ('click ',dosh1)//这个dosh 1就是包装在外面的函数。

})

以上原则都适用于removeEventListener,但对于emoveEventListener还有一点需要注意,见下文。

onMounted(()={

window.addEventListener('click ',()={

多斯()

})

})

未安装(()={

window . removeeventlistener(' click ',()={

多斯()

})

})

上面的代码是通不过,因为removeEventListener的第二个参数,也就是回调函数,必须和addEventListener的回调函数是同一个函数,共享内存,下面写的就行了。

onMounted(()={

window.addEventListener('click ',doSth)

})

未安装(()={

window . removeeventlistener(' click ',doSth)

})

但是上面的写法还是不能传参数,所以如果要传参数,还是要外包一个函数,如下

设doSth=(str: string)={

console . log(str);

}

设doSth1=()={

多斯(“哈哈”)

}

onMounted(()={

window.addEventListener('click ',doSth1)

})

未安装(()={

window . removeeventlistener(' click ',doSth1)

})

但是,如果使用ts,doSth函数的参数可以是可选参数,如下所示

让doSth=(str?string)={

if (typeof str=='string') {

console . log(' passed ');

}否则{

Console.log('无引用');

}

}

onMounted(()={

window.addEventListener('click ',doSth)

})

未安装(()={

window . removeeventlistener(' click ',doSth)

})

这种情况会提示一条信息:

没有与此调用匹配的重载。

第 1 个重载(共 2 个),“(type: "click", listener: (this: Window, ev: MouseEvent) = any, options?: boolean | AddEventListenerOptions | undefined): void”,出现以下错误。

第 2 个重载(共 2 个),“(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void”,出现以下错误。

当然实际操作还可以,没什么问题,但是误差很难看。要解决这个问题并且不想在外面再包一层函数,可以直接给doSth添加任意类型。

让doSth: any=(str: string)={

if (typeof str=='string') {

console . log(' passed ');

}否则{

Console.log('无引用');

}

}

onMounted(()={

window.addEventListener('click ',doSth)

})

未安装(()={

window . removeeventlistener(' click ',doSth)

})

当然,原因还是不明白。唉,慢慢来。

总结

关于removeEventListener在js中取消事件监控的这篇文章到此为止。有关removeEventListener取消事件监视的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关于js中的全等和不全等,等于和不等于问题的关系,,关于JS中的全等和不全等、等于和不等于问题
  • Vue项目启动,nodejs启动vue项目,如何启动一个Vue.js项目
  • vue双向绑定和单向绑定,vue.js 双向绑定,Vue双向绑定详解
  • vue事件修饰符和按键修饰符,vue事件绑定修饰符都有哪些,Vue.js 事件修饰符的使用教程
  • vue中-model的作用,Vue中的v-model指令的作用是-,vue.js 实现v-model与{{}}指令方法
  • vue2.0双向绑定原理,vue.js 双向绑定
  • vue2.0双向绑定原理,vue.js 双向绑定,深入理解vue.js双向绑定的实现原理
  • vue.js路由跳转,vue-router路由跳转,Vue路由跳转的4种方式小结
  • vue.js打包,vue前端如何打包,详解Vue项目的打包方式
  • vue.js前后端分离,vue前后端分离web项目,Vue之前端体系与前后端分离详解
  • vue.js 遍历数组,vue中遍历数组中的一个对象中的值
  • vue.js 遍历数组,vue中遍历数组中的一个对象中的值,Vue中遍历数组的新方法实例详解
  • UglifyJsPlugin,,Uglifyjs(JS代码优化工具)入门 安装使用
  • seajs教程,seajs还有人用吗,Sea.JS知识总结
  • require的用法js,require.js
  • 留言与评论(共有 条评论)
       
    验证码: