jQuery绑定scroll滚动事件后滚动页面控制台无输出如何解决
问题排查解决方法
- 检查目标元素的滚动属性
scroll事件只能在自身可滚动的元素上触发,你当前绑定事件的是#idOfUl容器,默认它没有固定高度、也没有设置溢出滚动规则,内容会直接撑开容器高度,本身不会产生滚动条,你滚动的是整个页面,触发的是window的滚动事件,自然不会触发该容器的事件。
给#idOfUl添加固定高度和滚动规则即可验证:
#idOfUl { height: 300px; overflow-y: auto; }
添加后滚动这个容器内部的内容,就能触发绑定的scroll事件,控制台会打印对应日志。
- 检查事件绑定时机
如果你的JS代码写在#idOfUl元素渲染之前,会找不到对应DOM导致绑定失败,建议把事件绑定逻辑放在DOM加载完成的回调中:
$(document).ready(function() { $("#idOfUl").on('scroll', function() { console.log('Event Fired'); }); })
- 调整绑定对象匹配需求
如果你的实际需求是监听整个页面的滚动,直接把事件绑定到window对象上即可:
$(window).on('scroll', function() { console.log('Event Fired'); })
内容的提问来源于stack exchange,提问作者yaliga
相关产品推荐
相关产品推荐

