Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery解除绑定后无法绑定窗口上的滚动_Javascript_Jquery - Fatal编程技术网

Javascript 使用jquery解除绑定后无法绑定窗口上的滚动

Javascript 使用jquery解除绑定后无法绑定窗口上的滚动,javascript,jquery,Javascript,Jquery,我正在使用窗口。当到达滚动按钮时,滚动事件以加载div上的内容 $(window).scroll(function() { if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { $(window).unbind('scroll'); loadMoreCommentsOnArticle(); } }); function loadMoreCom

我正在使用
窗口。当到达滚动按钮时,滚动
事件以加载div上的内容

 $(window).scroll(function() {
   if($(window).scrollTop() + $(window).height() > $(document).height() - 100) {
       $(window).unbind('scroll');
       loadMoreCommentsOnArticle();
   }
});

  function loadMoreCommentsOnArticle(){
                $(window).bind('scroll');
                var dynamicData = fetchData();
                $('#parentElement').append(dynamicData);
}
初始绑定一次后,滚动未绑定。可能按$(窗口)。取消绑定('滚动')。但我正在尝试再次使用$(window.bind('scroll')绑定滚动;但它不起作用

不使用$(window).unbind('scroll')。滚动事件在短时间内触发了大量的次数

根据Rory的说法,我在用这种方法

var $window = $(window);
function windowScroll() {
  if ($window.scrollTop() + $window.height() > $(document).height() - 100) {
    window.off('scroll');
    loadMoreCommentsOnArticle();
  }
}
 $window.scroll(windowScroll);

问题在于,当您在
loadMoreComentSonarticle()
中重新绑定scroll事件时,您没有提供要运行的函数。您可以通过将滚动逻辑提取到它自己的函数来解决这个问题,从而使绑定/重新绑定更容易

还要注意,
bind()
unbind()
是不推荐使用的。您应该改用
on()
off()

var$window=$(window);
函数windowScroll(){
如果($window.scrollTop()+$window.height()>$(document.height()-100){
$window.off('scroll');
loadMoreComentSonaticle();
}
}
$window.scroll(windowScroll);
函数loadMoreComentSonarticle(){
$window.on('scroll',windowScroll);
$('#parentElement').append(fetchData());
}
函数fetchData(){
console.log('正在加载数据…')
返回“更多数据…”;
}
#parentElement div{
高度:3000px;
}

一些数据。。。

问题是因为在
LoadMoreComentSonarticle()
中重新绑定滚动事件时,没有提供要运行的函数。您可以通过将滚动逻辑提取到它自己的函数来解决这个问题,从而使绑定/重新绑定更容易

还要注意,
bind()
unbind()
是不推荐使用的。您应该改用
on()
off()

var$window=$(window);
函数windowScroll(){
如果($window.scrollTop()+$window.height()>$(document.height()-100){
$window.off('scroll');
loadMoreComentSonaticle();
}
}
$window.scroll(windowScroll);
函数loadMoreComentSonarticle(){
$window.on('scroll',windowScroll);
$('#parentElement').append(fetchData());
}
函数fetchData(){
console.log('正在加载数据…')
返回“更多数据…”;
}
#parentElement div{
高度:3000px;
}

一些数据。。。


不要在函数中写入绑定在$(document.ready()中写入绑定;还有一件事是loadMoreComentSonarticle(),这个函数根本不被调用@此示例中不一定需要Sindhoor document.ready,因为它都是通过铰链连接在
窗口上的。当满足
if
条件时,该函数也会在
滚动
处理程序中调用。确定现在您编辑了调用函数名称之前的问题不一样不要在函数中写入绑定在$(document)中写入它。ready();还有一件事是loadMoreComentSonarticle(),这个函数根本不被调用@此示例中不一定需要Sindhoor document.ready,因为它都是通过铰链连接在
窗口上的。当满足
if
条件时,
scroll
处理程序也会调用该函数。现在,您编辑了调用函数名称之前的问题。scroll根本不调用。window.scrollTop不是函数它是
$window
,而不仅仅是
window
window.off不是函数。。。同样
$window
,而不是
window
。为什么不复制/粘贴答案中的代码?Scroll根本不是调用。window.scrollTop不是函数它是
$window
,而不仅仅是
window
window.off不是函数。。。同样
$window
,而不是
window
。为什么不直接复制/粘贴答案中的代码?