获取“未捕获的参考错误:$ 未定义” - 脚本以正确的顺序加载 - 并且可以从控制台工作 [重复]
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 的引用? head
或 body
?
【参考方案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 中?