4

setInterval を使用して、ap(html 段落) に特定のテキスト値があるかどうかを確認しています。それがあれば、間隔をクリアしてコードフローを継続したい。これをjQueryプラグインで使用しているので、段落にテキスト値が含まれている場合は、間隔をクリアしてからコールバック関数を続行します。だから私はこのようなことを試しました:

var checkTextValue = setInterval(function(){
                          var textVal = $('p').text();
                          if(textVal == 'expectedValue'){
                              clearInterval(checkTextValue);
                              callback();
                          } 
                     },10);

コールバック関数は単純なアラートです。私の問題は、アラートが際限なく呼び出されることです。それを正しく行うためにコードを書くにはどうすればよいですか? ありがとう。

4

1 に答える 1

8

setInterval の代わりに setTimeout を使用します。

何かのようなもの:

var checkTextValue = setTimeout(function() {
    var textVal = $('p').text();
    if (textVal == 'expectedValue'){
        callback();
    } else {
        setTimeout(arguments.callee, 10);
    }
},10);
于 2009-10-26T18:34:29.697 に答える