javascript – jQuery – 如何在使用clearInterval将其终止后重新启动setInterval?

我想用2个按钮创建一个页面,’STAY’和’Leave’.按钮下方有一个iFrame.当页面第一次加载时,iFrame会在10秒后自动开始刷新.当用户点击STAY按钮时,它将停止刷新.之后,如果他点击LEAVE按钮,iFrame将在10秒后再次开始刷新.
我正在使用此代码:

$(document).ready(function() {
    var refreshIntervalId = setInterval( "update()", 10000 );

    $('#leave').click(function () {
        var refreshIntervalId = setInterval( "update()", 10000 );;
    })

    $('#stay').click(function () {
        clearInterval(refreshIntervalId);
    })
});

function update(){
    var url = "load.php";
    $('iframe#ifrm').attr('src', url);
}

<div id="bar">
    <div class= "button" id="stay">
    <a>Stay</a>
    </div>
    <div class= "button" id="leave">
    <a>Leave</a>
    </div>
</div>

但它不起作用,我是否以错误的方式使用clearInterval?

解决方法:

我认为你需要在函数范围之外拉出设置间隔id.

var refreshIntervalId;
$('#leave').click(function () {
        refreshIntervalId = setInterval( update, 10000 );
        })
$('#stay').click(function () {
           clearInterval(refreshIntervalId);
        })
});

也许对refreshIntervalId变量进行一些验证检查……

if(refreshIntervalId!=null){
   // Do something with the interval id
}
上一篇:奇怪的随机值作为默认间隔处理程序参数


下一篇:javascript – 使用setInterval()进行简单的连续轮询