获取“未捕获的参考错误:$ 未定义” - 脚本以正确的顺序加载 - 并且可以从控制台工作 [重复]

Posted

技术标签:

【中文标题】获取“未捕获的参考错误:$ 未定义” - 脚本以正确的顺序加载 - 并且可以从控制台工作 [重复]【英文标题】:Getting "Uncaught reference error: $ is not defined" - scripts are loading in correct order - and works from console [duplicate] 【发布时间】:2019-09-09 22:36:00 【问题描述】:

我收到一个错误:

“未捕获的引用错误:$ 未定义”

当尝试在电子应用程序的自定义 js 代码中使用 $('#someid') 时。


脚本在我的 html 文件中的顺序正确:

<script type="text/javascript" src="assets/js/jquery.min.js"></script>
<script type="text/javascript" src="assets/js/popper.js"></script>
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript" src="mymidi.js"></script>

如果我尝试在mymidi.js 的第一行之一上使用,就会发生这种情况:

console.log($('#mappingnotify').innerText);

或者对于稍后在 dom 元素创建期间创建的事件:

function pickdev()...
midiinput.on('noteon',function(msg)
...
  $('#mappingnotify').modal('show');
...)

奇怪的是它似乎在控制台上可以正常工作:

console.log($('#mappingnotify').innerText);

输出:

VM113:1 
kalsjhdf
Cancel

所以对我来说,它似乎与$ 在调用时没有被加载有关......但我不知道是什么,或者如何解决它。

【问题讨论】:

大多数浏览器在控制台中都有自己的 $ 别名,即使没有加载 jQuery。你确定你有正确的 jquery.min.js 路径吗? 脚本是否在使用它们的代码执行之前加载? 顺便说一下(仅供参考)type="text/javascript" 已经好几年没用了。 @DanielBeck 很高兴知道,我不知道,路径是正确的,因为铬开发工具显示它已加载;斯科特 - 是的,脚本似乎是预先加载的,因为我发布的代码都包含在 mymidi.js 中,铬会以某种方式加载它们吗? 你在哪里包括你对 jquery 的引用? headbody? 【参考方案1】:

它没有读取您的 jQuery 文件。

您是否设置了静态文件夹?我从未使用过 Electron,但在 Node.js 中,您可以设置一个静态文件夹,服务器会知道何时开始相关。

因此,也许在您的根应用程序文件夹中创建一个名为“public”的子文件夹,将所有“assets”、“bootstrap”等移动到 public 文件夹中。然后在主文件里面,添加const pathToAsset = path.join(__static, 'public')

https://webpack.electron.build/using-static-assets

【讨论】:

谢谢,但我认为这不是问题所在,有一个静态文件夹,它正确加载了我的自定义 js 文件和其他 css 文件,似乎 jquery 文件也加载为浏览器的开发工具在源标签中显示它 这不是答案,而是问题,所以应该是评论。我意识到你没有足够的代表。尚未发表评论,因此请专注于提供优质的答案以获得您的代表。足够高。 我遇到了类似的错误,似乎没有加载。

以上是关于获取“未捕获的参考错误:$ 未定义” - 脚本以正确的顺序加载 - 并且可以从控制台工作 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

main.js:2未捕获的参考错误:未定义firebase [重复]

PHP - 如何处理“utf-16”、us-ascii 编码的 html 字符串以正确保存在 DomDocument 中?

有漏应以正见段之哲学迷思——人活着有什么意义?

软件工程 结对项目总结

如何通过批处理脚本接收具有名称的进程

如何过滤文本文件中以大写字母开头并以正整数结尾的行,并在 linux 的命令行上使用正则表达式?