1

重複の可能性:
setInterval は 1 回だけ実行されますか?

先に進む前に言っておきますが、デザイナーのロジックは難しいので、私の無知をご容赦ください。

私は単純なスライダーを作成しています。ユーザーがマウスで画像を移動したときに、プログラムが mouseup() の前の最後の 1 秒間に移動した距離を記録できるようにしたいと考えています。スワイプされたかのようにシミュレートするために、画像を移動する必要があります。

私はベースイベントハンドラーを次のように持っています:

$('.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');
}

私の問題は、設定された間隔関数が1回だけ呼び出され、私がやろうとしているように毎秒1回呼び出されないことです。私は何を間違っていますか?

4

1 に答える 1

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

する必要があります

window.setInterval(testFunction, 1000);

最初に、あなたは呼び出し の値を渡していますtestFunction(たまたまですがundefined、それは重要ではありません)

2番目に、値を 渡しますtestFunction(つまり、必要な関数です)。

于 2013-02-02T15:00:24.697 に答える