javascript - 用于隐藏/显示菜单的外部 JavaScript 不起作用

标签 javascript html

<分区>

我是 JavaScript 新手,卡在了第一个程序中。当我使用内部 JavaScript 时,它正在工作,但不是来自外部 JavaScript 文件。 JavaScript 在这里不起作用。这里我想使用JavaScript来隐藏和显示菜单项,最后一个元素中的按钮仅用于测试。

showMenu(){
  var x = document.getElementById('mainmenu');
  if(x.style.display == "none"){
    x.style.display="block";
  }
  else{
    x.style.display="none";
  }
}

html 的 css

body{
  background-color: white;
  margin: 0;
  padding: 0;
}
#topcontact{
  background-color: teal;
  margin: -16px 0;
}
#topcontact p{
  color:white;
  text-align: center;
  padding:10px;
}

header{
  width:100%;
  background-color: white;
}
ul{
  flex-flow: right;
  margin: 0 auto;
  padding: 0;
  width: 80%;
}
ul li{
  display: inline-block;
  list-style: none;
  padding: 15px;
}
ul li:hover{
  background: lightgrey;
}
ul li a{
  text-decoration: none;
  text-transform: uppercase;
}
.toggle{
  width: 100%;
  padding: 10px 20px;
  background: #001f44;
  text-align: right;
  box-sizing: border-box;
  color:#fff;
  font-size: 30px;
  display: none;
}
@media (max-width: 768px){
  .toggle{
    display: block;
  }
  ul {
    width: 100%;
  }
  ul li{
    display: block;
    text-align: center;
  }
}

这是我的html文件

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <title>Welcome to JS page</title>
    <link rel="stylesheet" type="text/css" href="assets/css/style.css">
    <link rel="stylesheet" type="text/css" href="assets/css/font-awesome.min.css">

</head>
<body>

    <header>
        <div class="toggle">
            <i class="fas fa-bars" onclick="showMenu()"></i>
        </div>
        <div id="mainmenu">
                <ul>
                    <li><a href="#"> Home</a></li>
                    <li><a href="#">Services</a></li>
                    <li><a href="#">Education Materials</a></li>
                    <li><a href="#">About us</a></li>
                    <li><a href="#">Contact us</a></li>
                </ul>
        </div>
    </header>
    <button type="button" onclick="document.getElementById('buttonshowing').style.display='block'">Show Data</button>
    <div id="buttonshowing" style="display: none;">you clicked show data</div>

    <script type="text/javascript" src="/assets/js/mainjs.js"></script>
</body>

</html>

最佳答案

我认为您包含的文件不正确。您缺少 dot , 代表当前目录。

使用这个:

<script type="text/javascript" src="./assets/js/mainjs.js"></script>

并且总是用 function 声明一个函数关键词:

function showMenu() {
  var x = document.getElementById('mainmenu');
  if (x.style.display == "none") {
    x.style.display = "block";
  } else {
    x.style.display = "none";
  }
};

关于javascript - 用于隐藏/显示菜单的外部 JavaScript 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51945491/

相关文章:

javascript - 重置功能不适用于 JavaScript 游戏

html - iOS HTML Unicode 到 NSString?

javascript - 比较两列高度 Bootstrap/在列之间移动 div

javascript - 如何从 d3 中 timeParse 函数的输出中删除时间戳

javascript - ng-模型列表未在 Angular js 中更新

javascript - 如何制作影响 Angular 不同数据的可重用函数?

javascript - 在弹出窗口中显示特定数据

html - 如何为 <canvas> 创建媒体查询

php - 如何将输入文本拉伸(stretch)到全宽?动态PHP

javascript - 动画导航与另一个导航一起移动