我有多个DOM元素。当每个窗口都在窗口中可见时,我会在该元素上触发动画。
每个元素都将窗口滚动事件注册到同一个事件处理程序,向该处理程序传递元素的ID和动画的特定于事件的回调函数。
此单个事件处理程序测试元素是否在屏幕上,如果是,则触发回调。
但是......即使在触发回调之后,它仍然会监听窗口滚动事件。如何关闭滚动监听器? jQuery“off”没有用。
$(window).on('scroll', function () {
sharedFunctionsModuleName.initialAnimationWhenChartBottomVisible({
chartID: chartID,
callbackFunction: thisWebpageModuleName.animationFunctionName
});
});
答案 0 :(得分:0)
EventTarget.removeEventListener()?
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener
答案 1 :(得分:0)
只使用一个事件而不是
$(window).one('scroll', function () {
sharedFunctionsModuleName.initialAnimationWhenChartBottomVisible({
chartID: chartID,
callbackFunction: thisWebpageModuleName.animationFunctionName
});
});
这在第一次被解雇后自动取消绑定
文档为here