在函数中执行 addEventListener()

Execute addEventListener() inside a function

本文关键字:addEventListener 执行 函数      更新时间:2023-09-26

>我想要的:在滚动时向窗口添加一个事件侦听器,但仅在触发某个函数时。我希望它工作的方式是:

  1. 执行foo()
  2. 在所述功能内部,window.addEventListener("scroll", bar());
  3. 然后,也只有这样,bar()在每一个卷轴上执行(直到我决定在其他地方removeEventListener())。

会发生什么:我想bar()只执行一次——在foo()的生命周期内。

解决方法

  1. 在函数外部添加事件侦听器(全局),
  2. 将代码封装在bar() if (some_boolean === true) {内,
  3. foo()结束之前将我的some_boolean变量(全局声明)设置为 true。

这样,我就获得了所需的滚动功能,但现在bar()及其布尔检查会在每次滚动时执行,而绝对不需要。

问题:如何添加事件处理程序以使其有效地运行 bar()?

bar() 似乎被调用,而不是在window.addEventListener("scroll", bar());引用。尝试引用bar作为事件发生时要调用scroll处理程序

window.addEventListener("scroll", bar);
相关文章:
  • 没有找到相关文章