我注意到,当ajax在页面顶部推送某些内容时,jquery scroll事件会自动触发。有专家知道如何避免在添加内容时触发滚动事件吗?但是当用户运行鼠标滚轮,页面向上向下以及键盘向上和向下时,可能会触发滚动事件?
$(window).on('scroll', function () {
console.log("User manual scrolled.");
});
发布于 2015-04-21 17:02:22
您在代码中使用了window.scrollTop()
。它将在jQuery
中自动触发滚动事件,因为jQuery
在幕后使用window.scrollTo()
。
您不能取消由此触发的“scroll”事件。但您可以使用黑客来检测在您的'AddContent‘调用window.scrollTop()
之后是否调用了滚动事件。您可以通过将AddContent
中的布尔变量设置为false
来完成此操作。并检查您的滚动事件处理程序中的变量是否为false
。如果是false
,则将其设置为true
,并且不执行任何操作。否则,执行您想要的操作。
我派生了你的jsfiddle并更新了它:JsFiddle
发布于 2015-04-26 06:51:11
这只是一种变通方法,但如果您需要快速修复,则可以在顶部加载新内容后让窗口滚动回按钮。
https://jsfiddle.net/msfq5mx0/
$(window).scrollTo(0,$("#btnAddContent").offset().top);
https://stackoverflow.com/questions/29693258
复制相似问题