简体   繁体   English

Javascript,如果条件无法按预期工作

[英]Javascript if condition not working as expected

I create a script that have a loop action and put a condition where to stop this script. 我创建了一个具有循环动作的脚本,并为停止该脚本设置了条件。 The first if is working properly, but not the second one, when I set maxClick , the script ignore the if condition and continue run the script. 当我设置maxClick ,第一个if可以正常工作,但是第二个if不能正常工作,脚本将忽略if条件并继续运行脚本。

Here's the full of my script 这是我剧本的全部

 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> 

Here's the fiddle 这是小提琴

It seems like your code runs correctly. 看来您的代码正常运行。 When (i == maxClick ) the interval is cleared therefore the second if block does not get executed. (i == maxClick )interval被清除,因此第二个if块没有被执行。 I'm assuming you're confused since you're using the same alert value in both blocks. 我假设您很困惑,因为您在两个块中都使用了相同的警报值。 Try doing this instead: 尝试这样做:

if (i == maxClick ) {
    clearInterval(interval);
    alert("Clicked Link: " + i);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM