猿问

停止setInterval

停止setInterval

我想在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
        }
    });}


至尊宝的传说
浏览 711回答 3
3回答

慕桂英3389331

您需要setInterval在单击处理程序的范围内设置变量的返回值,然后clearInterval()像这样使用:var&nbsp;interval&nbsp;=&nbsp;null;$(document).on('ready',function(){ &nbsp;&nbsp;&nbsp;&nbsp;interval&nbsp;=&nbsp;setInterval(updateDiv,3000);});function&nbsp;updateDiv(){ &nbsp;&nbsp;&nbsp;&nbsp;$.ajax({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;'getContent.php', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;function(data){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('.square').html(data); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;function(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearInterval(interval);&nbsp;//&nbsp;stop&nbsp;the&nbsp;interval &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.playSound('oneday.wav'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('.square').html('<span&nbsp;style="color:red">Connection&nbsp;problems</span>'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;});}

临摹微笑

使用变量并调用clearInterval以停止它。var&nbsp;interval;$(document).on('ready',function() &nbsp;&nbsp;interval&nbsp;=&nbsp;setInterval(updateDiv,3000); &nbsp;&nbsp;}); &nbsp;&nbsp;function&nbsp;updateDiv(){ &nbsp;&nbsp;&nbsp;&nbsp;$.ajax({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;'getContent.php', &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;function(data){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('.square').html(data); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error:&nbsp;function(){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.playSound('oneday.wav'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$('.square').html('<span&nbsp;style="color:red">Connection&nbsp;problems</span>'); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;I&nbsp;want&nbsp;to&nbsp;stop&nbsp;it&nbsp;here &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearInterval(interval); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;}

慕斯709654

您必须将setInterval函数的返回值分配给变量var&nbsp;interval;$(document).on('ready',function(){ &nbsp;&nbsp;&nbsp;&nbsp;interval&nbsp;=&nbsp;setInterval(updateDiv,3000);});然后clearInterval(interval)再次使用它来清除它。
随时随地看视频慕课网APP
我要回答