我创建了一个具有循环操作的脚本,并设置了停止此脚本的条件。第一个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>
答案 0 :(得分:2)
您的代码似乎正常运行。当(i == maxClick )
清除interval
时,第二个if
块不会被执行。我假设你很困惑,因为你在两个块中使用相同的警报值。试着这样做:
if (i == maxClick ) {
clearInterval(interval);
alert("Clicked Link: " + i);
}