Jquery 仅允许load()在滚动上触发一次

Jquery 仅允许load()在滚动上触发一次,jquery,Jquery,我知道这里关于如何使用的帖子只有上百万篇。一篇,但我在jquery方面的技术还不够熟练,无法掌握我要做的事情,我相信这会让我变得复杂,远远超出我应该做的事情 我正在使用jQuery插件检查特定的div是否在屏幕上可见 $(document).scroll(function() { if($("#showBlogs").is(':onScreen')) { $("#showMoreBlogs").show().load("path/to/file.php"); }

我知道这里关于如何使用
的帖子只有上百万篇。一篇
,但我在jquery方面的技术还不够熟练,无法掌握我要做的事情,我相信这会让我变得复杂,远远超出我应该做的事情

我正在使用jQuery插件检查特定的
div
是否在屏幕上可见

$(document).scroll(function() {
    if($("#showBlogs").is(':onScreen')) {
        $("#showMoreBlogs").show().load("path/to/file.php");
    }
});
我的html代码是这样的:

<div id="showBlogs" style="display:none"></div>

这确实有效,但每次通过鼠标或向下箭头键向下滚动页面时,
load()
当然会在div位于视图内时再次触发,但显然让它每次重新加载都不好

现在我知道这个函数是存在的,但我只是不想把这两个东西结合起来

如何使用
is(“:屏幕上”)
滚动
以使用
.one(函数)
??这就是让我困惑的地方。

试试:

$(文档)。一(“滚动”,函数(){
if($(“#showBlogs”).is(“:屏幕上”){
$(“#showMoreBlogs”).load(“path/to/file.php”);
}
} );

让我知道它是否有效。:-)

试试看:

$(文档)。一(“滚动”,函数(){
if($(“#showBlogs”).is(“:屏幕上”){
$(“#showMoreBlogs”).load(“path/to/file.php”);
}
} );


让我知道它是否有效。:-)

您设置的方式。。。只需添加几行代码就更容易了:

$(document).scroll(function(event) {
    if($("#showBlogs").is(':onScreen')) {
        $("#showMoreBlogs").show().load("path/to/file.php");
        $(this).off(event);
    }
});

你设置的方式。。。只需添加几行代码就更容易了:

$(document).scroll(function(event) {
    if($("#showBlogs").is(':onScreen')) {
        $("#showMoreBlogs").show().load("path/to/file.php");
        $(this).off(event);
    }
});

jQueryAPI说$(“#foo”).one(“单击”,function(){alert(“这将只显示一次”);});相当于$(“#foo”).on(“单击”,函数(事件){alert(“这将只显示一次”);$(This.off(事件);});因此建议使用OPs。一个是正确的,您正在添加不必要的行。此方法似乎在初始滚动到视图时加载文件,而不是在任何其他滚动时重新加载。您实际上不需要
self
变量,因为
将在if语句中工作,但除此之外,解除绑定处理程序是一种方法+1.jQueryAPI表示$(“#foo”).one(“单击”,function(){alert(“这将只显示一次”);});相当于$(“#foo”).on(“单击”,函数(事件){alert(“这将只显示一次”);$(This.off(事件);});因此建议使用OPs。一个是正确的,您正在添加不必要的行。此方法似乎在初始滚动到视图时加载文件,而不是在任何其他滚动时重新加载。您实际上不需要
self
变量,因为
将在if语句中工作,但除此之外,解除绑定处理程序是一种方法+1.这在加载文件时确实有效,但每次滚动时都会触发。请尝试编辑的版本。有个打字错误。当页面滚动时,此功能仅启动一次。以后再也不会了。那我不知道为什么它会在每一个卷轴上燃烧$一个(“滚动”,函数(){alert('hi');});仅为我触发一次。仅当第一次滚动事件恰好将特定div放入视图时,使用
.one()
此功能才有效-您不能指望它。@nnnnnn--因此,您在这里得到的是什么,让我确保我理解您的意思,就是我第一次滚动鼠标时,它启动了
.is
检查,但此后每次鼠标滚动都没有进行检查,因为
.one
已经完成了“一次”,这就是她写的全部内容。基本上正确吗?这在加载文件时确实有效,但它在每个卷轴上都会持续启动。请尝试编辑的版本。有个打字错误。当页面滚动时,此功能仅启动一次。以后再也不会了。那我不知道为什么它会在每一个卷轴上燃烧$一个(“滚动”,函数(){alert('hi');});仅为我触发一次。仅当第一次滚动事件恰好将特定div放入视图时,使用
.one()
此功能才有效-您不能指望它。@nnnnnn--因此,您在这里得到的是什么,让我确保我理解您的意思,就是我第一次滚动鼠标时,它启动了
.is
检查,但此后每次鼠标滚动都没有进行检查,因为
.one
已经完成了“一次”,这就是她写的全部内容。基本上是对的?