当我第一次点击应该切换menuContent
的menu
文本时,它会显示menuContent
,这是要显示的。然而,在它显示之后,它不会隐藏,因此display = block
不会返回到display = none
。
我尝试使用show
值,但它没有工作,所以我在if
语句中使用display = block
代替。
(顺便说一下:menu
=按钮切换文本和menuContent
=文本应该显示或隐藏)
这是JavaScript:
menu.addEventListener('click', menuClick, false);
menuContent.style.display = 'none'
function menuClick() {
menuContent.classList.toggle('show');
if (menuContent.style.display = 'none') {
menuContent.style.display = 'block'
} else {
menuContent.style.display = 'none'
}
}
所以if statement
的第一部分有效,但else
的部分无效。
如何解决这个问题?
menuContent.style.display = 'none'
应该
menuContent.style.display === 'none'
否则你将把menuContent设置回"display: none"一次。
提醒'='和'==='!
menuContent.style.display = 'none'
是变量赋值,不是相等性检验。您需要使用===
或==
(松散检查)。
所以,你总是在第一种情况下结束因为你总是给它赋值