function changeButton () {
if (event.currentTarget.className == 'btnRed') {
event.currentTarget.className = 'btnGreen';
} else {
event.currentTarget.className = 'btnRed';
}
}
假设我有上面的代码。我已经看到了类似的代码,这些代码将两者结合起来,但我真的不记得它是如何做到的。这就像className = (btnGreen | btnRed)
对于这个问题的含糊不清,我感到非常抱歉。
答案 0 :(得分:4)
您可以使用三元运算符(condition) ? (true) : (false)
event.currentTarget.className = event.currentTarget.className == 'btnRed' ? 'btnGreen' : 'btnRed';
我会更进一步,将字符串提取到变量中,以消除在整个解决方案中输入错误的能力。并将event.currentTarget
重构为变量。
var RED_BUTTON_CLASS = 'btnRed',
GREEN_BUTTON_CLASS = 'btnGreen';
var currentTarget = event.currentTarget;
currentTarget.className = currentTarget.className == RED_BUTTON_CLASS ? GREEN_BUTTON_CLASS : RED_BUTTON_CLASS;
从长远来看,我觉得这样做会更容易,完全可选
<强> 修改 强>
所以从Jan所说的内容中添加额外的信息。
var RED_BUTTON_CLASS = 'btnRed',
GREEN_BUTTON_CLASS = 'btnGreen';
这些可能描述了一个州,所以你可以更好地命名它们:
var ERROR_BUTTON_CLASS = 'btnRed',
OK_BUTTON_CLASS = 'btnGreen';