在vue中如何使用addEventListener添加事件、removeEventListener移除事件
在vue中如何使用addEventListener添加事件、removeEventListener移除事件最近在项目中需要用到addEventListener监听滚动条滚动的高度,所以就研究了一下在vue中是怎么进行事件监听的。添加事件给要添加事件的元素加上ref属性在mounted中添加事件mounted() {this.$refs.box.addEventListener('scroll',(
·
在vue中如何使用addEventListener添加事件、removeEventListener移除事件
最近在项目中需要用到addEventListener监听滚动条滚动的高度,所以就研究了一下在vue中是怎么进行事件监听的。
添加事件
给要添加事件的元素加上ref属性
在mounted中添加事件
mounted() {
this.$refs.box.addEventListener('scroll',()=>{
console.log('scroll',this.$refs.box.scrollTop)
});
}
这样就添加成功了!
移除事件
如果要移除已添加的事件,removeEventListener中传入的方法必须和addEventListener中传入的是同一个方法才能成功移除,所以在添加时就不能用匿名函数啦。需改成如下写法
mounted() {
this.$refs.box.addEventListener('scroll',this.scrollEvent);
},
methods:{
scrollEvent(){
console.log('scroll',this.$refs.box.scrollTop)
}
}
这里要注意 传入的方法 this.scrollEvent 后面不能加括号,否则无法成功添加
组件销毁前移除事件
beforeDestroy() {
this.$refs.box.removeEventListener('scroll',this.scrollEvent);
}
如果是keep-alive组件,可以用下面这种方式
activated() {
this.$refs.box.addEventListener('scroll', this.scrollEvent);
},
deactivated(){
this.$refs.box.removeEventListener('scroll',this.scrollEvent);
},
另外,addEventListener还可以给一个元素添加多个事件,并且不会覆盖已存在的事件,这里就不多展开了~
更多推荐
已为社区贡献1条内容
所有评论(0)