收到“未捕获的引用错误:未定义$”-脚本以正确的顺序加载-并且可以从控制台运行

时间:2019-04-19 17:26:04

标签: javascript jquery bootstrap-4 electron

我遇到错误:

  

“未捕获的ReferenceError:未定义$”

当尝试在电子应用程序的自定义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

对我来说,似乎与$调用时未加载有关系...但是我对如何解决它感到困惑。

1 个答案:

答案 0 :(得分:-2)

这不是在读取您的jQuery文件。

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

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

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