javascript - Javascript函数仅在第二次点击时起作用
问题描述
所以我试图在使用 Javascript 的手机上的导航叠加层中隐藏/显示元素。我让它在第二次单击时显示元素,然后每次单击时都会起作用。但它在第一次点击时不起作用,我似乎无法理解为什么。
这是我的代码:
function hidelinks() {
if ( document.getElementById("secondmenu").style.display =="none"){
console.log(document.getElementById("secondmenu").style.display)
console.log("hej")
document.getElementById("secondmenu").style.display ="block";
} else {
console.log(document.getElementById("secondmenu").style.display)
console.log("hej2")
document.getElementById("secondmenu").style.display ="none";
}
}
#secondmenu {
display: none;
}
<div id="myTopnav" class="overlay" >
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<div class="overlay-content ">
<ul class="nobull">
<li><a onclick="hidelinks()" href="#">Om madskoler</a></li>
<ul id="secondmenu" class="nobull">
<li><a id="secondlink" href="#">Madskoler kort fortalt</a></li>
<ul class="nobull">
<li><a id="thirdlink" href="#">Arrangører</a></li>
<li><a id="thirdlink" href="#">Samarbejde med ældresagen</a></li>
</ul>
<li><a id="secondlink" href="#">Hvad er Madskoler?</a></li>
<li><a id="secondlink" href="#">Etniske Madskoler</a></li>
<li><a id="secondlink" href="#">Ungdomsmadskoler</a></li>
<li><a id="secondlink" href="#">Praktiske oplysninger</a></li>
<li><a id="secondlink" href="#">Maden på Madskoler</a></li>
<li><a id="secondlink" href="#">Salgs- og leveringsbetingelser</a></li>
</ul>
<li><a href="#">Tilmeld dit barn</a></li>
<li><a href="#">Bliv instruktør</a></li>
<li><a href="#">Sponsorer og ambassadører</a></li>
<li><a href="#">Nyheder</a></li>
<li><a href="#">Kontakt</a></li>
<li><a href="#" class="logout-button">Instruktør login</a></li>
</ul>
</div>
</div>
我不知道哪里出错了!
先感谢您 :)
解决方案
默认情况下document.getElementById("secondmenu").style.display
返回空字符串......所以只需更改'if'就可以了......
function hidelinks() {
if ( document.getElementById("secondmenu").style.display != "block"){
console.log(document.getElementById("secondmenu").style.display)
console.log("hej")
document.getElementById("secondmenu").style.display ="block";
} else {
console.log(document.getElementById("secondmenu").style.display)
console.log("hej2")
document.getElementById("secondmenu").style.display = "none";
}
}
#secondmenu {
display: none;
}
<div id="myTopnav" class="overlay" >
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<div class="overlay-content ">
<ul class="nobull">
<li><a onclick="hidelinks()" href="#">Om madskoler</a></li>
<ul id="secondmenu" class="nobull">
<li><a id="secondlink" href="#">Madskoler kort fortalt</a></li>
<ul class="nobull">
<li><a id="thirdlink" href="#">Arrangører</a></li>
<li><a id="thirdlink" href="#">Samarbejde med ældresagen</a></li>
</ul>
<li><a id="secondlink" href="#">Hvad er Madskoler?</a></li>
<li><a id="secondlink" href="#">Etniske Madskoler</a></li>
<li><a id="secondlink" href="#">Ungdomsmadskoler</a></li>
<li><a id="secondlink" href="#">Praktiske oplysninger</a></li>
<li><a id="secondlink" href="#">Maden på Madskoler</a></li>
<li><a id="secondlink" href="#">Salgs- og leveringsbetingelser</a></li>
</ul>
<li><a href="#">Tilmeld dit barn</a></li>
<li><a href="#">Bliv instruktør</a></li>
<li><a href="#">Sponsorer og ambassadører</a></li>
<li><a href="#">Nyheder</a></li>
<li><a href="#">Kontakt</a></li>
<li><a href="#" class="logout-button">Instruktør login</a></li>
</ul>
</div>
</div>
推荐阅读
- mongodb - 为什么猫鼬的 find() 给出了这个奇怪的结果,带有对象数组
- laravel - 如何将自定义数据添加到 laravel 队列作业表中或将队列作业有效负载添加到其他数据中
- delphi - FormStyle = fsMDIForm 在主窗体上的框架
- typescript - 为什么 typeof 变量在打字稿中未定义?
- asp.net-core - Core 2.1 HttpRequest.Body 尝试读取时为空
- google-cloud-platform - 谷歌源代码库集成
- mysql - DEV和生产环境MYSQL服务器的性能差异
- html - 如何在反应中分离文件的css规则?
- react-native - 我如何在本机反应中检查 navigationOptions 内的条件
- android - 如何从cpp代码android为所有架构生成.so文件