早上好 -

我已经阅读了多个帖子,与我的问题非常相似,但仍然找不到可行的解决方案。我的sideNav需要先单击一下,然后才能开始使用每次点击,下拉框要求我双击后才能进行任何操作。我一直在尝试修复此问题几天,希望这里有人可以提供帮助。

我在下面附加了我的代码。感谢大家抽出宝贵时间为您提供帮助。

https://codepen.io/Bryant_Mitchell/pen/KKPbQLy

    function sideBar() {
      var sideBar = document.getElementById("sideBar"),
      main = document.getElementById("main");
      sideBar.style.width = sideBar.style.width === "250px" ? '0' : '250px';
      main.style.marginLeft = main.style.marginLeft === "250px" ? '0' :  '250px';
    }

function collapseButton() {
  var coll = document.getElementsByClassName("dropdown");
  var i;

      for (i = 0; i < coll.length; i++) {
        coll[i].addEventListener("click", function() {
          this.classList.toggle("active");
          var content = this.nextElementSibling;
          if (content.style.maxHeight){
            content.style.maxHeight = null;
          } else {
            content.style.maxHeight = content.scrollHeight + "px";
          }
        });
      }
  }


附言我遇到的另一个问题是,但它没有任何优先级,当隐藏我的sideNav时,它倾向于将内容压低并且难看。我知道我可以增加导航的大小,它将解决此问题,但是我在徘徊是否还有其他解决方法。同样,这对我来说并不是真正的优先事项,但我想我会在这里问,而不是稍后再发表。

最佳答案

  function sideBar() {

  var sideBar = document.getElementById("sideBar"),
  main = document.getElementById("main");
  sideBar.style.width = sideBar.style.width === "250px" ? '0' : '250px';
  main.style.marginLeft = main.style.marginLeft === "250px" ? '0' : '250px';

  }



function collapseButton() {

  var coll = document.getElementsByClassName("dropdown");
  var i;
  for (i = 0; i < coll.length; i++) {
    coll[i].addEventListener("click", function () {
      this.classList.toggle("active");
      var content = this.nextElementSibling;
      if (content.style.maxHeight) {
        content.style.maxHeight = null;
      } else {
        content.style.maxHeight = content.scrollHeight + "px";
      }
    });
  }



 }

  addEventListener("load", collapseButton);


addevntlistner可以像上面那样调用您的crashButton函数。
但是请记住要删除html文件中的onclick语句,如下所示。

<button type="button" class="dropdown" >Projects</button>

10-04 11:29