const options = {
offset: -50
};
export default {
name: 'BarMenu',
data() {
return {
scrollingDirection: '',
}
},
computed: {
cssClasses() {
return {
hidden: this.scrollingDirection === 'down'
}
}
},
mounted() {
this.onScroll();
},
methods: {
scrollToIngredients() {
return this.$scrollTo(document.getElementById('ingredients-inside-content'), 600, options);
},
scrollToRecipes() {
return this.$scrollTo(document.getElementById('similar-recipes'), 600, options);
},
scrollToComments() {
return this.$scrollTo(document.getElementById('comments'), 600, options);
},
onScroll() {
let lastScrollTop = 0;
const handler = () => {
let st = window.pageYOffset || document.documentElement.scrollTop;
if (st > lastScrollTop) {
this.scrollingDirection = 'down';
} else {
this.scrollingDirection = 'up';
}
lastScrollTop = st <= 0 ? 0 : st;
};
window.removeEventListener("scroll", handler, false);
window.addEventListener("scroll", handler, false);
}
},
}
这条线不起作用,为什么? window.removeEventListener("scroll", handler, false);
我尝试了所有方法:箭头函数、函数声明等。但是该事件监听器根本没有删除。
最佳答案
我也遇到了类似的问题,最后我用另一种替代方法解决了它,在addEventListener
函数的参数中添加once
选项,该选项会自动删除它并这对我来说是有效的,如果是的话可以帮助你检查parameters
关于javascript - Vue JS removeEventListener 不起作用。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58993476/