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') {
这是一个代码笔 http://codepen.io/anon/pen/ZOXAzd
在条件中,更改
if (navMenu.style.height == 0)
自
if (navMenu.style.height == '0px')
它应该有效。
我不确定这一点,但您是否尝试过= 0
而不是= '0'
?
我希望这有所帮助,祝你好运。
相关文章:
- 使用每500ms运行一次的jquery函数是个好主意吗
- For循环在Jquery中只运行一次
- 使函数只运行一次(Javascript)
- 更改路由后,运行一次js脚本
- 只运行一次提取的脚本
- 可能只在for循环内部运行一次代码块
- 在Flask中使用.getJSON请求时,只运行一次命令
- 数据互绑定问题:转换器只运行一次,无法绑定元素的 ID
- setInterval 只在对象方法上运行一次
- 如何在 window.setInterval 中每分钟运行一次 getJSON 函数
- Cordova(Ionic):Splashscreen只在Android上运行一次
- jQuery事件将只运行一次
- 如果发现任何数据,如何停止每7秒运行一次的函数
- 计划每60秒运行一次代码
- 事件只运行一次
- MEANIO群集(共4个)对于计划作业仅运行一次
- 为什么AS3 navigationToURL()只运行一次
- 在nodeJS中每小时运行一次调度作业
- 如何一次运行一次循环javascript
- 在for循环中触发onchange事件只运行一次