0

我想在循环templates[i]内执行点击setTimeoutfor

for(var i=0; i<templates.length; i++){
    setTimeout(function(){
        (function(){
            templates[i].click();
        }(i, templates));
    }, 200);
}

我得到错误templates[i]未定义。

但是,这样的事情很好:

for(var i=0; i<templates.length; i++){  
    setTimeout(function(){
        (function(){
            console.log(templates_arr+templates)
        }(templates_arr, templates));
    }, 200);
}

任何人都可以阐明为什么会这样以及如何正确传递数组和索引吗?

谢谢,丹

4

1 回答 1

1

它应该是

for(var i=0; i<templates.length; i++){
   (function(i,templates){
       setTimeout(function(){
            templates[i].click();
       }, 200);
   })(i, templates);

}
于 2016-01-12T09:33:00.030 回答