Javascript 如果条件未按预期工作

标签 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

最佳答案

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

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

关于Javascript 如果条件未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40901987/

相关文章:

html - 无法设置CSS菜单栏的整页宽度

html - 使 HTML/CSS 工作更轻松的工具

javascript - 如何将对象中的键与给定的字符串进行匹配?

javascript - jQuery:根据类型对子项进行排序

javascript - 如何将 cls 放入 tagfield 编辑器中

jquery - 使用 jQuery 读取 "data-id"属性

html - 无法在 HTML 文件中链接 CSS/JS 文件

javascript - Razor 内的脚本,无法使用 @ : 进行纠正

javascript - 使用递归过滤 JavaScript 中的对象数据

html - 如何在 <a href 中的标题属性中显示一些文本粗体