Javascript如果条件不按预期工作

时间:2016-12-01 03:08:18

标签: javascript html

我创建了一个具有循环操作的脚本,并设置了停止此脚本的条件。第一个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>

Here's the fiddle

1 个答案:

答案 0 :(得分:2)

您的代码似乎正常运行。当(i == maxClick )清除interval时,第二个if块不会被执行。我假设你很困惑,因为你在两个块中使用相同的警报值。试着这样做:

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