在函数中执行 addEventListener()
Execute addEventListener() inside a function
>我想要的:在滚动时向窗口添加一个事件侦听器,但仅在触发某个函数时。我希望它工作的方式是:
- 执行
foo()
- 在所述功能内部,
window.addEventListener("scroll", bar());
- 然后,也只有这样,
bar()
在每一个卷轴上执行(直到我决定在其他地方removeEventListener()
)。
会发生什么:我想bar()
只执行一次——在foo()
的生命周期内。
解决方法是
- 在函数外部添加事件侦听器(全局),
- 将代码封装在
bar()
if (some_boolean === true) {
内,
在 foo()
结束之前将我的some_boolean
变量(全局声明)设置为 true。
这样,我就获得了所需的滚动功能,但现在bar()
及其布尔检查会在每次滚动时执行,而绝对不需要。
问题:如何添加事件处理程序以使其有效地运行 bar()?
bar()
似乎被调用,而不是在window.addEventListener("scroll", bar());
引用。尝试引用bar
作为事件发生时要调用scroll
处理程序
window.addEventListener("scroll", bar);
相关文章:
- 没有找到相关文章