jQuery Scroll事件触发而不实际滚动
jQuery Scroll event firing without actually scrolling
我的网站有动态加载内容的页面,而无需更改页面。我在我的javascript文件中创建了以下jquery插件,当页面滚动到底部时,它应该做某些事情。
$.fn.scrollEvent= function() {
$(document).on("scroll", function() {
console.log("Scroll");
if($(window).scrollTop() + $(window).height() == $(document).height()) {
// do stuff
}
});
};
因此,当单击菜单项时,我加载新页面内容并调用jquery插件,以便可以在新页面上使用它。
$(document).ready(function() {
$(document).on("click", ".menu-item", function() {
$.fn.scrollEvent();
// do other page stuff
});
});
但是,我注意到的是,当我调用插件时,控制台会在我在页面上执行任何操作之前记录"滚动"。因此,滚动事件被调用一次甚至两次,而我实际上根本没有滚动。
为什么会这样?有没有更好的方法可以做到这一点?
您应该使用以下模式:
$.fn.scrollEvent = function () {
return this.on("scroll", function () {
console.log("Scroll");
if ($(window).scrollTop() + $(window).height() == $(document).height()) {
// do stuff
}
});
};
$(window).scrollEvent(); //bind event to windwo or any element
相关文章:
- 为什么 JS 不在滚动时调用函数
- 在不向上滚动的情况下向列表框中添加项目
- Google 图表 - 设置选择不会滚动到表格可视化中的选定行
- 调用按键事件而不实际按下 JavaScript 中的键
- 移动设备中的菜单不会滚动
- 在触发实际滚动进一步事件之前,允许更多滚动(松弛)
- 拖放区中可拖动的 Jqueryui 不会滚动,会恢复,滚动条存在
- 导航到新页面不会滚动到顶部
- 如何在不实际使用<表单>
- 如何在不使用滚动条的情况下将html页面放入弹出窗口(对话框)
- Jquery焦点不工作/滚动
- JQuery定位:我可以滚动到正确的位置一次,但不能滚动两次
- iPhone锚点,scrollTop,scrollTo显示移动按钮栏,但不会滚动或跳到锚点
- jQuery滚动力不会滚动超过450px
- 不连续滚动-检测用户是否停止滚动
- 重新加载页面而不向上滚动
- jQuery滚动不向上滚动
- 阻止鼠标滚轮滚动,但不阻止滚动条事件.JavaScript
- 如何确定滚动方向,而不实际滚动
- jQuery Scroll事件触发而不实际滚动