繁体   English   中英

addEventListener“ click”仅通过if语句运行一次

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM