[英]addEventListener “click” only runs once with if statement
我有一个用于下拉菜单的addEventListener,当我第一次单击它时,该菜单出现,如果再次单击,它会正确消失。 但是,在那之后,如果我再试一次,则什么也没有发生。 如果我放弃了if语句,并且在函数内部使用了一个简单的警报,它每次都会起作用,但是这个if语句似乎很麻烦。
document.getElementById("menu").addEventListener("click",navigation);
function navigation() {
var navMenu = document.getElementById("navigation");
var list = document.getElementById("list");
if (navMenu.style.height == 0) {
navMenu.style.height = "190px";
list.style.display = "flex";
}
else {
navMenu.style.height = "0";
list.style.display = "none";
}
}
元素高度以像素为单位报告,因此像这样更新代码应该可以进行。
if (navMenu.style.height === '0px') {
这是一个codepen http://codepen.io/anon/pen/ZOXAzd
在这种情况下,改变
if (navMenu.style.height == 0)
至
if (navMenu.style.height == '0px')
它应该工作。
我对此不太确定,但您是否尝试过将= 0
而不是= '0'
呢?
希望这对您有帮助,祝您好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.