Javascript 用于循环0的jQuery setinterval
可能重复:Javascript 用于循环0的jQuery setinterval,javascript,jquery,Javascript,Jquery,可能重复: 对于for循环,它什么也不做。没有for循环,它工作得非常完美 没有for循环: var refreshId = setInterval(function(){ $("#k1").fadeTo(1000,0.01,callfunc).fadeTo(1000,1); }, 5000); var refreshId = setInterval(function(){ $("#k2").fadeTo(1000,0.01,callfunc).fadeTo(1000,1); }, 5
对于for循环,它什么也不做。没有for循环,它工作得非常完美 没有for循环:
var refreshId = setInterval(function(){
$("#k1").fadeTo(1000,0.01,callfunc).fadeTo(1000,1);
}, 5000);
var refreshId = setInterval(function(){
$("#k2").fadeTo(1000,0.01,callfunc).fadeTo(1000,1);
}, 5000);
for(var i=1;i<7;i++){
var refreshId = setInterval(function(){
$("#k"+i).fadeTo(1000,0.01,callfunc).fadeTo(1000,1);
}, 5000);
}
等等
对于for循环:
var refreshId = setInterval(function(){
$("#k1").fadeTo(1000,0.01,callfunc).fadeTo(1000,1);
}, 5000);
var refreshId = setInterval(function(){
$("#k2").fadeTo(1000,0.01,callfunc).fadeTo(1000,1);
}, 5000);
for(var i=1;i<7;i++){
var refreshId = setInterval(function(){
$("#k"+i).fadeTo(1000,0.01,callfunc).fadeTo(1000,1);
}, 5000);
}
for(var i=1;i正如@pimvdb指出的,在循环中有闭包(setTimeout创建一个),它不会工作,您应该有如下内容:
for(var i = 1; i < 7; i++) {
(function(e) {
var refreshId = setTimeout(function() {
$("#k"+e).fadeTo(1000,0.01,callfunc).fadeTo(1000,1);
}, 5000);
})(i);
}
for(变量i=1;i<7;i++){
(职能(e){
var refreshId=setTimeout(函数(){
$(#k+e).fadeTo(1000,0.01,callfunc).fadeTo(1000,1);
}, 5000);
})(i) );
}
您可能还想查看更多信息。阅读。可能是参数名称未被替换的打字错误?第4行,“i”不是“e”?+1@David19801:如果您想要更具描述性的方式,您可以使用。在我发表评论时,参数名为“e”,但第4行引用了“i”…pimvdb已经进行了编辑我已经想到了。@JimBlackler:是的,我后来意识到了,但被pimvdb修复/编辑:)