【发布时间】:2014-03-04 16:43:50
【问题描述】:
我无法停止 jquery 中的循环 if 语句。这个想法是我有一个 div 应该开始循环遍历彩虹数组中的所有颜色,并在单击停止 div 时停止。它循环正常,但是当我点击停止时,即使循环变量为 0,它也不会停止循环。当我点击停止时,我该怎么做才能让颜色停止?
单击here 链接到我正在编写代码的 jsfiddle 页面。
$(document).ready(function () {
//Defines variables.
var loop = 1;
var rainbow = ["red", "orange", "yellow", "green", "blue", "purple"];
//loops the color changing if 'loop' is 1.
$('#go').click(function strobe() {
if (loop) {
for (var i = 0; i < rainbow.length; i++) {
$('#color').animate({
"background-color": rainbow[i]
}, 500);
}
strobe();
}
});
//Sets 'loop' to 0 to prevent looping.
$('#stop').click(function () {
loop = 0;
});
});
【问题讨论】:
-
你在做动画的时候真的需要设置一个超时时间,它每秒会启动一个新的数百次,所以即使你停止它也会试图赶上自己,所以会保持持续很长时间。
-
循环的不是
if语句。if语句执行一次,然后继续。if内的for语句是循环的。
标签: javascript jquery html if-statement for-loop