我有这段代码:
function myf(){
setTimeout(function(){
if(flag === 1){
sleep = 1;
}else{
sleep = 0;
}
myMove();
myf();
}, 6000);
function myMove(){
var intId = setInterval(function(){
if(sleep === 0){
clearInterval(intId);
return false;
}else{
$("#myDiv1").fadeIn(1000);
$("#myDiv1").fadeOut(1000);
}
}, 1000);
}
我的问题是clearInterval无效。所以,当我处于其他情况时(我要去那里,我已经测试了,所以if案例工作正常)然后我的div“myDiv1”继续淡入淡出。我怎么能停止这个间隔?
提前感谢。
答案 0 :(得分:4)
语法错误。应该是:
if (flag === 1) { ... }
答案 1 :(得分:2)
它永远不会调用清除间隔函数,因为你的setinterval函数是
intId = setInterval(function(){
$("#myDiv1").fadeIn(1000);
$("#myDiv1").fadeOut(1000);
}, 1000);
所以这个代码会在每个时间间隔后被调用..在那个函数中你必须检查标志然后你必须写kill interval函数..
类似
intId = setInterval( function(){
if(flag==1)
{
$("#myDiv1").fadeIn(1000);
$("#myDiv1").fadeOut(1000);
}
else
{
// clearInterval here
}
}, 1000);
答案 2 :(得分:0)
尝试使用intId
初始化您的var
变量:
var intId = setInterval(function(){