<分区>
我有以下代码:
for (z=0;z<7;z++) {
x = Math.floor((Math.random() * 7));
//I am pulling some class names from an array here
var element = document.querySelector("." + map[x]);
//element.click();
console.log('No timeout ', x);
setTimeout(function() {
console.log('timeout ', x);
element.click();
}, 200);
}
本质上,我期望点击各种随机元素,但是,在setTimeOut函数中添加click方法时,我发现它点击了同一个元素。但是当在主代码中执行时,它按预期工作,只是比我想要的快很多!
为了对此进行测试,我添加了一些日志。 No timeout 日志生成数字:1,2,3,4,5,6,7 而 timeout 日志生成数字:7,7,7,7,7 ,7,7(No timeout 日志中的最后一个数字...
这解释了为什么点击同一个元素,但我不是 100% 确定为什么会这样?