首页 > 解决方案 > 从外部 js 文件发出运行函数

问题描述

我正在尝试做一些我认为应该是基本和基本的事情,但它不起作用。我查看了许多相关的 Stackoverflow QA,但没有一个涵盖这个确切的问题。

我想从名为 main.js 的外部 js 文件运行一个函数。该文件以通常的方式加载到 html 页面的正文部分的底部。该文件的所有内容都在标准的 jQuery 包装器中。我知道它正在正确加载,因为我可以在开发人员工具中看到它,并且其中编码的各种动画运行正常。我在页面的 head 部分加载了 jQuery 3.3.1,并且它必须再次正确加载,因为动画正在运行。

作为测试,我在 main.js 中有以下函数:

function alerttest() {
  alert('Function test works');
}

然后在html页面的主体中调用函数如下:

<script>
  alerttest();
</script>

因此,当我刷新页面时,我应该会收到警报,但这不会发生。我在控制台中收到错误: Uncaught ReferenceError: alerttest is not defined。如果我在错误的位置加载脚本会发生这种情况,所以我也尝试了这个来调用函数,以便首先加载 DOM:

<script>
$(function() {
  alerttest();
});
</script>

但我得到相同的参考错误。谁能建议发生了什么?

环境:Windows 10、VSCode、Codeigniter 3、jQuery 3.3.1、WAMP 和 PHP 7.4.7

标签: javascripthtmljquery

解决方案


我相信我已经解决了这个问题,并且正如我所怀疑的那样,它与脚本的位置有关。我一直被建议在页面底部的结束正文标记上方包含脚本,但这在这种情况下不起作用。我现在已经将我的 main.js 和 jQuery CDN 一起放在了 head 部分,一切正常。

非常感谢您的回复。


推荐阅读