javascript - "scroll"事件监听器未触发

标签 javascript html events event-handling dom-events

我目前正在开发一个 vanilla JS 插件,我需要在滚动时更新一个值,所以我将一个事件监听器附加到文档以触发一个应该更新上述值的函数。

问题是,它适用于文档加载但不适用于滚动。好像滚动事件根本不起作用。

目前,我的 JS 部分看起来像这样:

var currentPosition = 0;

var updatePosition = function() {
  currentPosition = document.body.scrollTop;
  document.getElementById('indicator').textContent = currentPosition;
};

document.addEventListener('scroll', updatePosition());

这里有一个 fiddle 可以让它更清楚一点: JSFIDDLE

我尝试在主体和窗口上附加事件监听器,这没有任何区别。

最佳答案

您正在使用 updatePosition() 直接调用一个函数,那是因为您在页面开始时触发函数,您必须仅使用函数名称 updatePosition 附加和处理程序.

代码:

document.addEventListener('scroll', updatePosition);
                                                  |-- no () here

演示:http://jsfiddle.net/IrvinDominin/dyy6z35s/

关于javascript - "scroll"事件监听器未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32934622/

相关文章:

javascript - 每隔几分钟在页面之间切换

javascript - 在 pjax 请求上显示加载文本

解析模板以发送电子邮件时不解析 Html

当我动态加载时,jQuery 多次绑定(bind)事件,如何避免?

mysql - Mysql 中仅在工作日运行的事件

javascript - 正则表达式分组和上下文

javascript - 使超链接仅在禁用 JavaScript 时有效?

html - 为什么 Firefox 在加载 'big' 文档时比 Chrome 快得多?

javascript - 理解为什么 Request 在 Flask 中不起作用

javascript - jQuery - 在 mousedown 上触发常规函数调用