我创建了一个具有循环操作的脚本,并设置了一个停止该脚本的条件。第一个 if
工作正常,但第二个不行,当我设置 maxClick
时,脚本忽略 if
条件并继续运行脚本。
这是我的完整脚本
var className = ".link" ;
var delay = 0.1 * 1000 ; //0.1 Seconds
var maxClick = 5;
//Bind event handler
var element = document.querySelectorAll(className);
for (var j = 0; j < element.length; j++) {
element[j].addEventListener('click', function() {
// Optional Function On Click Event
}, false)
}
var i = 0 ;
function change() {
if (i == maxClick ) {
clearInterval(interval);
alert("Clicked Link: " + element.length);
}
if (i == element.length && interval) {
clearInterval(interval);
alert("Clicked Link: " + element.length);
}
element[i++].click();
}
change();
var interval = setInterval(change, delay);
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
<a class="link">Link</a>
最佳答案
看来您的代码运行正确。当 (i == maxClick )
时,interval
被清除,因此第二个 if
block 不会被执行。我假设您很困惑,因为您在两个 block 中使用相同的警报值。尝试这样做:
if (i == maxClick ) {
clearInterval(interval);
alert("Clicked Link: " + i);
}
关于Javascript 如果条件未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40901987/