1. ホーム
  2. javascript

[解決済み] 停止 setInterval

2022-06-25 07:22:01

質問

において、この間隔を止めたい。 error ハンドラでこの間隔が繰り返し実行されるのを止めたいのです。それは可能ですか?可能な場合、どのように?

// example code
$(document).on('ready',function(){
    setInterval(updateDiv,3000);
});

function updateDiv(){
    $.ajax({
        url: 'getContent.php',
        success: function(data){
            $('.square').html(data);
        },
        error: function(){
            $.playSound('oneday.wav');
            $('.square').html('<span style="color:red">Connection problems</span>');
            // I want to stop it here
        }
    });
}

どのように解決するのですか?

の戻り値を設定する必要があります。 setInterval をクリックハンドラのスコープ内の変数に設定し、その変数に clearInterval() をこのように指定します。

var interval = null;
$(document).on('ready',function(){
    interval = setInterval(updateDiv,3000);
});

function updateDiv(){
    $.ajax({
        url: 'getContent.php',
        success: function(data){
            $('.square').html(data);
        },
        error: function(){
            clearInterval(interval); // stop the interval
            $.playSound('oneday.wav');
            $('.square').html('<span style="color:red">Connection problems</span>');
        }
    });
}