JavaScript三元语句

时间:2016-12-26 22:39:53

标签: javascript

document.getElementById('navBtn').addEventListener('click', function(){
    document.getElementById('navBtn').style.backgroundColor = 'blue';
    document.getElementById('navBtn').className = document.getElementById('navBtn').className == 'x' ? 'o' : 'x';
    document.getElementById('nav').className = document.getElementById('nav').className == 'x' ? 'o' : 'x';
});

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您需要将false作为第三个参数添加到addEventListener。大多数情况下,它默认为false,但最好将它放在更安全的一面。

document.getElementById('navBtn').addEventListener('click', function () {
  document.getElementById('navBtn').style.backgroundColor = 'blue';
  document.getElementById('navBtn').className = document.getElementById('navBtn').className == 'x' ? 'o' : 'x';
  document.getElementById('nav').className = document.getElementById('nav').className == 'x' ? 'o' : 'x';
}, false);
.x {
  color: #ccf;
}
.o {
  color: #cfc;
}
<div id="navBtn">Hi</div>
<div id="nav">Bye</div>

建议您在()括号中包含三元条件:

document.getElementById('navBtn').addEventListener('click', function () {
  document.getElementById('navBtn').style.backgroundColor = 'blue';
  document.getElementById('navBtn').className = (document.getElementById('navBtn').className == 'x') ? 'o' : 'x';
  document.getElementById('nav').className = (document.getElementById('nav').className == 'x') ? 'o' : 'x';
}, false);