繁体   English   中英

javascript仅适用于<script> tags, not js file

[英]javascript only works in <script> tags, not js file

我正在制作一个可点击的下拉菜单。 但是,当我在自己的js文件中运行javascript时,js无法正常工作。 但是,当我将javascript放在html文档的标记中时,菜单运行正常。 有谁知道如何使javascript在其自己的js文件中工作?

function myFunction() {
 document.getElementById("myDropdown").classList.toggle("show");
}

window.onclick = function(event) {
  if (!event.target.matches('.dropbtn')) {

    var dropdowns = document.getElementsByClassName("dropdown-content");
    var i;
    for (i = 0; i < dropdowns.length; i++) {
      var openDropdown = dropdowns[i];
      if (openDropdown.classList.contains('show')) {
        openDropdown.classList.remove('show');
      }
    }
  }
};

尝试

document.addEventListener('DOMContentLoaded', function() {
  // do stuff here

}, false);

您需要创建一个名为script.js的JS文件,然后在关闭body标签之前将其添加到HTML文档中:

<script src="script.js"></script>

我认为您没有正确包含脚本。 检查您的控制台是否有错误。

另外,如果您在头部分中包含脚本,则可以在HTML之前加载脚本,因此可能找不到选择器。 在HTML文档末尾(在关闭body标签之前)包含脚本将确保在执行脚本之前加载文档。

为了从外部文件执行JavaScript,您需要使用类似以下内容的HTML文件中包含该文件:

<head>
        <script type="text/javascript" src="location/of/file/filename.js"></script>
</head>

从那里,使您正在使用的HTML元素调用您希望执行的JavaScript函数。

例:

<button onclick="functionName()">Click!</button>

然后将转到您在JavaScript文件中调用的函数并执行该函数的主体。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM