我的clearInterval有问题,它不能停止我的setInterval,下面是代码:
$(".auto-check").click(function(){
if($('input[name=autorefresh]').is(':checked') == true){
var intervalId = setInterval(load,4000);
}
else{
alert("Auto Refresh is off");
clearInterval(intervalId);
}
}); 谁知道,问题出在哪里?
发布于 2012-01-20 10:13:09
为了便于讨论,另一种使用jQuery .data()的方法
$(".auto-check").click(function(){
var elem = $('input[name=autorefresh]'
if(elem.is(':checked')){
elem.data("interval-id", setInterval(load,4000));
}
else{
alert("Auto Refresh is off");
clearInterval(elem.data("interval-id"));
elem.removeData("interval-id");
}
}); 发布于 2012-01-20 10:04:55
你需要保留intervalId。在您的示例中,您在本地声明它,并且它在函数之后丢失。在函数外部声明它,在函数内部定义它,然后它才有效。
var intervalId;
$(".auto-check").click(function(){
if($('input[name=autorefresh]').is(':checked') == true){
intervalId = setInterval(load,4000);
}
else{
alert("Auto Refresh is off");
clearInterval(intervalId);
}
}); 发布于 2012-01-20 10:04:11
试试这个:
var intervalId = null;
$('.auto-check').click(function(){
if($('input[name=autorefresh]').is(':checked') == true) {
intervalId = setInterval(load,4000);
} else {
alert('Auto Refresh is off');
clearInterval(intervalId);
}
});https://stackoverflow.com/questions/8935915
复制相似问题