Javascript 滚动处理程序未触发

新手上路,请多包涵

我要做的就是在滚动 DIV 时调用一个函数。为了简单起见,我没有指定任何其他内容。此外,我只关注与 DOM 兼容的浏览器,如 Chrome、Safari(不是 IE)。

我的问题是滚动处理程序永远不会被调用。如果我将 scroll 替换为 click ,它在我点击时起作用。不知何故卷轴不起作用。

请注意:我不能使用 jQuery :(

这是我的代码:

HTML:

 <div id="test">--long content--</div>

记者:

    function myFunc() {
        console.log('in myFunc');
    }
    var objTable = document.getElementById("test");

    objTable.addEventListener("scroll", function () {
        myFunc();
    }, false);

小提琴:

http://jsfiddle.net/yymg5/7/

原文由 Sajjan Sarkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 429
2 个回答

这是因为滚动的是窗口而不是 div。尝试将您的元素侦听器更改为 div 的父级(在本例中为窗口),如下 所示

 window.addEventListener("scroll", function () {
    myFunc();
}, false);

原文由 Undefined 发布,翻译遵循 CC BY-SA 3.0 许可协议

我遇到了类似的问题。此代码是正确的,已由 Undefined 回答

window.addEventListener("scroll", function () {
    myFunc();
}, false);

但它不起作用,因为,

滚动事件没有触发。因为我的身体在滚动而不是 documentElement。

我刚刚从身体标签中删除了 height: 100% ,然后滚动事件开始触发。

原文由 Vikramaditya 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题