SetInterval 运行 即使在我清除它之后
SetInterval running even after i clear it
我在解决 setInterval 的问题时遇到了一些麻烦。
我有一个函数,当我点击我网站上设置 var pass = 1 的元素时运行;
如果你查看 color1();有一个设置的间隔,当 pass > 0 时会自行清除;所以如果通过= 1;然后它应该清除自己,确实如此,但只有在 运行 间隔之后再清除一次。
所以它 - 运行 setInterval,清除 setInterval,然后运行 setInterval 中的其余代码。我需要的是让 setInterval 在没有 运行 代码的情况下再次清除。
提前致谢
function color1() {
var pass = 1;
var counter = 2;
var animationSpeed = 800;
var $colorContent = '.color-container-1 .color-content-container'
var colorInterval = setInterval(function() {
if (pass > 0) {
clearInterval(colorInterval);
}
$($colorContent).fadeOut(0);
$(($colorContent + '-' + counter)).fadeIn(animationSpeed);
++counter
if (counter === $($colorContent).length + 1) {
counter = 1;
}
}, 3000);
}
应该像下面这样,你应该return
这个函数。这里你已经清除了间隔但是你还没有停止执行
var colorInterval = setInterval(function() {
if (pass > 0) {
clearInterval(colorInterval);
return; //stop here so that it doesn't continue to execute below code
}
$($colorContent).fadeOut(0);
$(($colorContent + '-' + counter)).fadeIn(animationSpeed);
++counter
if (counter === $($colorContent).length + 1) {
counter = 1;
}
}, 3000);
我在解决 setInterval 的问题时遇到了一些麻烦。
我有一个函数,当我点击我网站上设置 var pass = 1 的元素时运行;
如果你查看 color1();有一个设置的间隔,当 pass > 0 时会自行清除;所以如果通过= 1;然后它应该清除自己,确实如此,但只有在 运行 间隔之后再清除一次。
所以它 - 运行 setInterval,清除 setInterval,然后运行 setInterval 中的其余代码。我需要的是让 setInterval 在没有 运行 代码的情况下再次清除。
提前致谢
function color1() {
var pass = 1;
var counter = 2;
var animationSpeed = 800;
var $colorContent = '.color-container-1 .color-content-container'
var colorInterval = setInterval(function() {
if (pass > 0) {
clearInterval(colorInterval);
}
$($colorContent).fadeOut(0);
$(($colorContent + '-' + counter)).fadeIn(animationSpeed);
++counter
if (counter === $($colorContent).length + 1) {
counter = 1;
}
}, 3000);
}
应该像下面这样,你应该return
这个函数。这里你已经清除了间隔但是你还没有停止执行
var colorInterval = setInterval(function() {
if (pass > 0) {
clearInterval(colorInterval);
return; //stop here so that it doesn't continue to execute below code
}
$($colorContent).fadeOut(0);
$(($colorContent + '-' + counter)).fadeIn(animationSpeed);
++counter
if (counter === $($colorContent).length + 1) {
counter = 1;
}
}, 3000);