SetInterval循环意外中断

时间:2014-12-15 15:00:24

标签: javascript jquery html loops

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

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 个答案:

答案 0 :(得分:2)

至少存在一些问题:

  1. 它是setIntervalwindow.setInterval,而不是document.setInterval (您已将问题修改为使用window.setInterval 。)

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

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