因此,我试图使用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()">&times;</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>





我不知道哪里出了问题!

先感谢您 :)

最佳答案

第一次运行时,style.display属性等于一个空字符串。这就是为什么它仅在第二次点击时起作用。

您可以像这样进行第二次比较:

 if (document.getElementById("secondmenu").style.display == "none" || document.getElementById("secondmenu").style.display == "") {
    console.log(document.getElementById("secondmenu").style.display)


或反转条件:...display != "block"

或者,您可以设置元素style inline <ul id="secondmenu" class="nobull" style="display: block">

或者您可以使用javascript进行设置:

document.getElementById("secondmenu").style.display = "none"



function hidelinks() {

  if (document.getElementById("secondmenu").style.display == "none" || document.getElementById("secondmenu").style.display == "") {
    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()">&times;</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>

关于javascript - Javascript功能仅在第二次点击时有效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59177428/

10-10 06:41