这是减少游戏生命阶段之间间隔的代码。
document.getElementById("intervalMinus").addEventListener("click",function() {
var intervalToMinus = +document.getElementById("labelInterval").innerHTML - 100;
(intervalToMinus < 100) ? intervalToMinus += 90 : intervalToMinus;
(intervalToMinus <= 0) ? intervalToMinus == 10 : intervalToMinus;
document.getElementById("labelInterval").innerHTML = intervalToMinus;
changeInterval();
});
当您点击按钮时,它会将间隔减少100,但如果间隔已经小于100,则减少10。
(intervalToMinus > 0) ? intervalToMinus == 10 : intervalToMinus;
这部分应该保证间隔永远不会变为负面。但它不起作用!我检查了chrome调试器,看到JS只是忽略了这个特定的行。
intervalToMinus等于0.条件为真。不行。为什么呢?
答案 0 :(得分:0)
您没有分配新值,只是在此处测试相等性:
(intervalToMinus <= 0) ? intervalToMinus == 10 : intervalToMinus;
你想要的可能就是:
(intervalToMinus <= 0) ? intervalToMinus = 10 : intervalToMinus;
注意单个'='而不是“==”。
答案 1 :(得分:-1)
我不知道你在用这些线做什么:
(intervalToMinus < 100) ? intervalToMinus += 90 : intervalToMinus;
(intervalToMinus <= 0) ? intervalToMinus == 10 : intervalToMinus;
document.getElementById("labelInterval").innerHTML = intervalToMinus;
这是作业,条件和价值的混合......
例如:
(intervalToMinus < 100) ? intervalToMinus += 90 : intervalToMinus;
如果intervalToMinus < 100
,则将不返回任何内容(但将变量增加90),如果没有,则返回intervalToMinus
。
所有这些都应该用“正常”if语句写成。
增加:
你应该这样写:
if (intervalToMinus < 100) {
intervalToMinus += 90;
}
if (intervalToMinus <= 0) {
intervalToMinus = 10;
}
document.getElementById("labelInterval").innerHTML = intervalToMinus;
更具可读性。