设置间隔循环意外中断

SetInterval loop breaking unexpectedly

本文关键字:意外 中断 循环 设置      更新时间:2023-09-26

我这里有一小段代码,用于检测用户何时停止滚动。当它触发时,页面将切换到下一页。它似乎工作过一次,但是当我尝试在下一页上再次使用它时,它会中断并且不会再次触发。我发现计时器似乎在您使用一次后停止触发。我还没有设法在网上找到任何相关的东西,所以任何帮助将不胜感激。谢谢。

JQuery:

var scroll = $(window).scroll(function(){
    currentPos = $(window).scrollTop();
    if(currentPos == 0){
        nextPage();
    }
})
window.setInterval(function(){
    scroll();
}, 500);

用于切换页面的代码:

function nextPage(){
    if(document.getElementById("homePage").style.top == "0px"){
        count = 0;
    }
    document.getElementById(pages[count]).style.top = "-1100px";
    count += 1;
    closeMenu();
}

那里至少有几个问题:

  1. 它是setIntervalwindow.setInterval,而不是document.setInterval (您已经修改了问题以使用window.setInterval

  2. 您的scroll变量不引用函数,因此您无法调用它(例如,scroll()是一个错误)。它是一个jQuery实例,而不是一个函数,因为它是$(window).scroll(function() { ... })的返回值,它设置一个事件处理程序并返回一个环绕window的jQuery对象。

  3. 如果scroll是一个函数,那么如果它的目的是设置事件处理程序,那么重复调用它是没有意义的;你只想这样做一次,否则你会有重复的事件处理程序相互干扰。