一旦到达数组中的最后一个值,如何再次遍历循环?
我希望在完成后再次运行函数init()
,因为更多的DOM元素myElement
在被点击后会被激活。
我已经尝试在init
之后运行setTimeout
函数,但这不起作用并尝试检查数组上的最后一个元素btn.length -1
仍无法正常工作。
function doSetTimeout(index, btn) {
setTimeout(function() {
jQuery(btn[index]).click();
}, index * 1500);
//init();
}
function init() {
var btn = [].slice.call(document.querySelectorAll('.myElement'));
var index;
for (index = 0; index < btn.length; index++) {
doSetTimeout(index, btn)
}
}
init();
答案 0 :(得分:1)
这有用吗?
function init() {
var btn = [].slice.call(document.querySelectorAll('.myElement'));
var index = 0;
function click() {
setTimeout(function() {
if(index < btn.length) {
jQuery(btn[index++]).click();
click();
} else {
init();
}
}, 1500);
}
click();
}
答案 1 :(得分:0)
如果你想写一个&#34; dumb&#34;检查基于计时器,然后使用以下习语:
doWhateverYouHaveToDo();
function doWhateverYouHaveToDo() {
// ...
setTimeout(doWhateverYouHaveToDo, 1500);
}
这将大约每1.5秒运行一次doWhateverYouHaveToDo
,等待每次调用完成后再继续。