【发布时间】:2023-01-25 23:57:40
【问题描述】:
我知道这个问题被问了很多,但我一定忽略了一些东西,因为我无法弄清楚为什么我不能在下面的代码中删除事件监听器。
有人可以帮我吗?我错过了什么?
function winResize() {
viewportWidth = window.innerWidth;
viewportHeight = window.innerHeight;
const $sidebar = document.querySelector('.sidebar');
const $purchaseFormFixed = document.querySelector('form.purchase-form');
function checkFromTop() {
...
}
if ( viewportWidth >= '1000' ) {
let sidebarHeight = $sidebar.offsetHeight;
let space = viewportHeight - (sidebarHeight + 50);
if ( space > '0' ) {
window.removeEventListener('scroll', checkFromTop, false);
$sidebar.classList.add('sticky');
$purchaseFormFixed.classList.remove('show');
} else {
window.addEventListener('scroll', checkFromTop, false);
$sidebar.classList.remove('sticky');
}
}
}
window.addEventListener('resize', winResize);
winResize();
【问题讨论】:
-
@Andy 条件运行正确 - removeEventListener 只是没有删除
标签: javascript