Javascript addEventListener";点击";使用if语句只运行一次
我有一个用于下拉菜单的addEventListener,当我第一次单击它时,菜单就会出现,如果我再次单击,它就会正确地消失。然而,在那之后,如果我再试一次,什么也不会发生。如果我去掉If语句并在函数中使用一个简单的警报,它每次都会工作,但是这个If语句似乎很麻烦Javascript addEventListener";点击";使用if语句只运行一次,javascript,Javascript,我有一个用于下拉菜单的addEventListener,当我第一次单击它时,菜单就会出现,如果我再次单击,它就会正确地消失。然而,在那之后,如果我再试一次,什么也不会发生。如果我去掉If语句并在函数中使用一个简单的警报,它每次都会工作,但是这个If语句似乎很麻烦 document.getElementById("menu").addEventListener("click",navigation); function navigation() { var navMenu = document.g
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";
}
}
我对此不确定,但您是否尝试过使用
=0
而不是=0'
我希望这有帮助,祝你好运。我不确定这一点,但你是否尝试过使用
=0
而不是=0'
我希望这会有所帮助,祝你好运。在这种情况下,请改变
if(navMenu.style.height==0)
到
if(navMenu.style.height==“0px”)
它应该能工作。在这种情况下,改变
if (navMenu.style.height === '0px') {
if(navMenu.style.height==0)
到
if(navMenu.style.height==“0px”)
它应该可以工作。元素高度以像素为单位报告,所以像这样更新代码应该可以工作
if (navMenu.style.height === '0px') {
这是一个代码笔元素高度以像素为单位报告,因此像这样更新代码应该可以
if (navMenu.style.height === '0px') {
这是一个代码笔在大多数浏览器中,
height
属性的返回值将是“0px”,而不是“0”,因此您的条件无法正确检查该值。它工作正常。感谢您的解释。在大多数浏览器中,height
属性的返回值将是“0px”,而不是“0”,因此您的条件无法正确检查该值。它工作正常。谢谢你的解释。