1

可能重复:
setInterval 只运行一次?

在我继续之前,让我说作为一个设计师逻辑来得很困难,所以我感谢你忍受我的无知。

我正在制作一个简单的滑块,我希望这样当用户用鼠标移动图片时,程序可以记下 mouseup() 之前的最后一秒所覆盖的距离,这样我就可以计算出多少图片必须像被刷过一样移动才能模拟。

我有我的基本事件处理程序:

$('.testdiv').mousedown(function(){

    pretestFunction();

    //mouse is pressed
    mousepressed = 1;

    //set first X point
    prevX = event.pageX;


}).mouseup(function(){

    //get stop X point
    stopX = event.pageX;
    mousepressed = 0;

});

pretestFunction 调用 setInterval,如下所示:

function pretestFunction(){
    window.setInterval(testFunction(), 1000);
}

测试函数():

function testFunction(){
    console.log('1 second');
}

我的问题是设置间隔函数只调用一次,而不是像我试图让它做的那样每秒调用一次。我究竟做错了什么?

4

1 回答 1

5
window.setInterval(testFunction(), 1000);

应该

window.setInterval(testFunction, 1000);

首先,您传递了调用 testFunction的值(恰好是undefined,但这并不重要)

在第二个中,您将传递的值 testFunction即一个函数,这就是您想要的。)

于 2013-02-02T15:00:24.697 回答