为什么这段代码会抛出

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

以前什么时候还好?

$(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>

当前回答

根本问题是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弹出错误,以防您在页面上运行共享脚本,而该页面没有加载您在页面子集上使用的任何库。

其他回答

我也有类似的问题。我的测试服务器使用“http”时工作正常。然而,它在具有SSL的生产中失败。

因此,在生产中,我添加了“HTPPS”而不是“HTTP”,在测试中,我保持了“HTTP”。

测试:

wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js', array(), null, false );

wp_register_script( 'custom-script', plugins_url( '/js/custom.js', __FILE__ ), array( 'jquery' ) );

生产:

wp_register_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js', array(), null, false );

wp_register_script( 'custom-script', plugins_url( '/js/custom.js', __FILE__ ), array( 'jquery' ) );

希望这对正在wordpress工作的人有所帮助。

多!我在标记中混合了引号,导致jquery引用中断。通过在Chrome中进行检查,我可以看到文件没有正确链接。

首先在索引文件中包含jQuery CDN(或jQuery ref)。在包含JS文件以确保我们正在访问jQuery之前。下面的台词对我有用

通过参考以下链接可以清楚地了解这一点参考站点:

https://www.tutorialrepublic.com/faq/how-to-fix-dollar-is-not-defined-error-in-jquery.php

答:在jQuery库加载后执行代码错误“UncaughtReferenceError:$未定义”背后最常见的原因是在jQuery库文件加载之前执行jQuery代码。因此,确保仅在jQuery库文件加载完成后才执行jQuery代码。

在包含jQueryJavaScript之前,您正在调用ready()函数。首先引用jQuery。

如果您使用的是ASP.NET MVC,则可以通过执行以下操作指定何时呈现JS代码:

1,在page.cshtml中,将<script>标记包装到一个部分中,并为其命名,常用名称为“script”:

@section scripts {
    <script>
        // JS code...
    </script>
}

2、在_Layout.cshtml页面中,添加@RenderSection(“Scripts”,必需:false),确保在引用Jquery源代码后放置它,这将使JS代码呈现晚于Jquery。

我想尝试使我的脚本异步。然后我忘记了这一点,当我上线时,[custom].js文件只在jQuery.js之前加载了50%的时间。

所以我改变了

<script async src="js/script.js"></script>

to

<script src="js/script.js"></script>