为什么这段代码会抛出

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

以前什么时候还好?

$(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 cdn放在主html页面的顶部

就像如果你的主html页面是index.html

将jquery cdn放置在该页面的顶部,如下所示<!DOCTYPE html><html><head><script src=“https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js“></script><脚本>$(文档).ready(函数){$(“button”).click(函数){$(“h2”).hide();});});</script></head><body><h2>这会把我藏起来</h2><button>单击我</button></body></html>

其他回答

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

如果您在.Net中执行此操作,并且正确引用了脚本文件,并且jQuery看起来很好,请确保您的用户可以访问脚本文件。我正在处理的项目(一名同事)的web.config拒绝匿名用户访问。匿名用户可以访问我正在处理的页面,因此他们无权访问脚本文件。将以下内容放到web.config中,一切正常:

  <location path="Scripts">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>

在我的例子中,我有这个referenceError,因为脚本调用的顺序错误。通过更改顺序解决了这一问题:

<script src="js/index.js"></script>
<script src="js/jquery-1.10.2.js"></script>

to

<script src="js/jquery-1.10.2.js"></script>
<script src="js/index.js"></script>

在使用$或jQuery的脚本之前添加jQuery库,以便在脚本中标识$。删除头上的标记脚本并结束bady

 <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>

然后首先在jsadd文件中编写脚本

/*global $ */
$(document).ready(function(){  });

在我的案例中,这是一个拼写错误,我忘记了反斜杠,并且错误地引用了源代码。

在src=“/scripts/jquery.js”之前

在src=“scripts/jquery.js”之后