Javascript 执行 if 和 else

标签 javascript if-statement

这是我的代码:

var srcArray = ["_images/overlook.jpg","_images/winery_sign.jpg","_images/lunch.jpg","_images/bigSur.jpg","_images/flag_photo.jpg","_images/mission_look.jpg"];
var myImg = document.getElementById("mainImage");
var imgIndex = 0;
var status = false;

myImg.onclick = function () {
    if (status) {
        var collage = setInterval(changeSrc,1500);
        status = true;
    } else {
        clearInterval(collage);
        status = false;
    }
}

function changeSrc (){
    myImg.setAttribute("src",srcArray[imgIndex]);
    imgIndex++;
    if (imgIndex == srcArray.length) {
        imgIndex = 0;
    }
}

我想做的是在未设置间隔时在 changeSrc 上设置间隔,在设置间隔时清除间隔。我在 Firebug 中看到浏览器执行 if 的第一部分,然后执行 else 的第二行(status = false)。

当我单击图像时设置间隔后,它会在同一图像上启动另一个间隔。基本上每次点击它都会运行得更快,而且不会停止。

问题出在哪里?

在此先感谢您的帮助:)

最佳答案

这样做:

myImg.onclick = function () {
    if (status) {
        var collage = setInterval(changeSrc,1500);
    } else {
        clearInterval(collage);
    }
    status = !status;
}

在您的代码中,您错误地初始化了状态

关于Javascript 执行 if 和 else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25252111/

相关文章:

javascript - 如何在没有node.js的情况下在js中建立客户端-客户端连接?

php - 在 Javascript 中捕获 PHP 回显

javascript - 从数组中删除不会更新变量内的引用?

java - 将命令行参数评估为 boolean 表达式

javascript - `if (condition = value)` 是用于比较的正确语法吗?

javascript - 使用 XML 和 Javascript/Jquery 填充页面,检查 url 是否与 xml 标记相同

javascript - 谷歌地图 API v3 中的复杂多边形

javascript - 使用 ExtendScript 将 compItem 转换为不同大小无法按预期工作

Linux bash 定时器

ruby - 审查 ruby​​ "if"声明