为什么这段代码会抛出

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

以前什么时候还好?

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

当前回答

如果在jQuery插件加载到浏览器之前加载了自定义脚本,则可能会出现这种类型的问题。因此,在调用jQuery插件后,始终保留自己的JavaScript或jQuery代码,因此解决方案是:

首先将链接添加到GoogleApis托管的jQuery文件或您将从中下载的本地jQuery文件http://jquery.com/download/和服务器上的主机:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

或jQuery的任何插件。然后放入自定义脚本文件链接或代码:

<script src="js/custom.js" type="text/javascript"></script>

其他回答

奇怪的是,我的问题来自PHP。

一个RESTAPI调用失败,之后它中断了库的加载。由于失败来自REST调用,所以它不会给我一个php编译错误。

如果可以加载jquery,也可以将其作为一个选项。

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

在启动脚本之前添加库。您可以添加以下任何CDN来启动脚本。

谷歌:

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

微软

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script>

滑动分页

如果您需要任何其他Jquery cdn版本,请选中此链接。

在此之后:

<script type="text/javascript">
$(function(){
    //your stuff
});
or
$(document).ready(function(){
    //your stuff
});    
</script>

文字印刷机:

<script type="text/javascript">
var $ = jQuery;
jQuery(document).ready(function($){
     //your stuff
});
</script>

我也有类似的问题。我的测试服务器使用“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插件加载到浏览器之前加载了自定义脚本,则可能会出现这种类型的问题。因此,在调用jQuery插件后,始终保留自己的JavaScript或jQuery代码,因此解决方案是:

首先将链接添加到GoogleApis托管的jQuery文件或您将从中下载的本地jQuery文件http://jquery.com/download/和服务器上的主机:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

或jQuery的任何插件。然后放入自定义脚本文件链接或代码:

<script src="js/custom.js" type="text/javascript"></script>