为什么这段代码会抛出

未捕获引用错误:未定义$

以前什么时候还好?

$(document).ready(function() {
    $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } });
    $('#featuredvid > ul').tabs();
});

选项卡中的结果不再关闭。

jQuery在头中被引用:

<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/sprinkle.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-1.2.6.min.js"></script>
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-ui-personalized-1.5.2.packed.js"></script>

当前回答

这件事以前发生在我身上。

原因是我正在用JS将android连接到webview。我发送了一个不带引号的参数。

js.sayHello(hello);

当我把它改成

js.sayHello('hello');

它奏效了。

其他回答

如果存在网络问题,也可能发生这种情况。这意味着,即使“jquery脚本”已到位,并且在使用之前已包含,但由于在加载页面时无法访问jquery脚本,因此“$”的定义被视为“未定义的引用”。

出于测试/调试目的::您可以尝试访问浏览器上的“jquery脚本”url。如果它是可访问的,您的页面应该正确加载,否则它将显示所述错误(或其他脚本相关错误)。示例-http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js应该可以在浏览器(或浏览器上下文实例)上访问。

我也遇到过类似的问题,我可以在windows主机浏览器中加载html页面(使用脚本),但无法在vmubuntu中加载。解决网络问题,解决问题。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript" src="local_xxx.js"></script>

我也有类似的问题,你知道吗,这是因为当我在android设备webview中测试时,网络断开了,我没有意识到这一点,而本地js加载没有问题,因为它不需要网络。这看起来很可笑,但我花了1个小时才弄清楚。

如果是wordpress,可能需要更改

$(document).ready(function() {

to

jQuery(document).ready(function($){

或添加

var $ = jQuery;

之前

$(document).ready(function() {

根本问题是ReferenceError。MDN表示try/catch块是作业的正确工具。在我的例子中,我得到了一个付费sdk/库的未经修正的参考错误。以下内容对我有用。

try {
  var stripe = Stripe('pk_test_---------');
} catch (e) {
    stripe = null;
}

if(stripe){
  //we are good to go now
}

显然,修复方法是在调用其方法之前加载任何SDK/库,例如jQuery,但try/catch确实可以防止共享JavaScript弹出错误,以防您在页面上运行共享脚本,而该页面没有加载您在页面子集上使用的任何库。

您尚未引用jQuery库。

您需要在HTML中包含一行类似的内容:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>