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

这段代码怎么会抛出一个

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

以前什么时候没事?

$(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>
2741508 次浏览

您在包含jQuery JavaScript之前调用就绪函数。首先参考jQuery。

您应该首先将对jQuery脚本的引用。

<script language="JavaScript" type="text/javascript" src="/js/jquery-1.2.6.min.js"></script><script language="JavaScript" type="text/javascript" src="/js/jquery-ui-personalized-1.5.2.packed.js"></script><script language="JavaScript" type="text/javascript" src="/js/sprinkle.js"></script>

我遇到了同样的问题,上面的这些解决方案都没有帮助。然而,我只是在.js文件之后链接了.css文件,问题奇迹般地消失了。希望这有帮助。

在我的情况下,这是一个错字,我忘记了反斜杠,并且错误地引用了源。

src="/scripts/jquery.js"之前

src="scripts/jquery.js"之后

啊!我的标签中混合了引号,导致jQuery引用中断。在Chrome中进行检查可以让我看到文件没有正确链接。

源文件jquery-1.2.6.min.js没有被调用,jQuery命令$()<..src='jquery-1.2.6.min.js'>之前执行。

请先运行<.. src="/js/jquery-1.2.6.min.js..">并确保src路径正确,然后执行jQuery命令

$(document).ready(function()

好吧,我的问题是不同的-它是Chrome中的文件安全模型。

查看这里的答案,很明显我在调用$(document).ready()等函数之前没有加载我的jQuery文件。然而,它们都在正确的位置。

在我的情况下,这是因为我通过安全的HTTPS连接访问内容,而页面试图从谷歌等下载CDN托管数据解决方案是将它们存储在本地,然后直接包含,而不是每次从CDN。

编辑:另一种方法是将所有CDN托管的东西链接到https://而不是超文本传输协议://-然后模型不会抱怨。

这就是我解决问题的方法。最初我去了谷歌,在他们的CDN页面上复制并粘贴了他们建议的jQuery片段:

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

代码片段在src属性中不包含HTTP:HTTPS:,但我的浏览器FireFox需要它,所以我将其更改为:编辑:这对我来说也适用于谷歌Chrome

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

然后它奏效了。

您的JavaScript文件丢失,因此发生此错误。只需在<head>标记中添加JavaScript文件即可。参见示例:

<script src="js/sample.js" type="text/javascript"></script><link href="css/sample.css" rel="stylesheet" type="text/css" />

或在标签中添加以下代码:

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

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

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

这以前发生在我身上。

原因是我用JS将android连接到webview。我发送了一个没有引号的参数。

js.sayHello(hello);

当我把它改成

js.sayHello('hello');

它奏效了。

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

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

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

在我的情况下,我遇到了这个引用错误,因为脚本调用的顺序是错误的。通过更改顺序解决了这个问题:

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

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

我有一个类似的问题,这是因为我在样式表链接上缺少一个结束>。

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

REST API调用失败,之后它破坏了库的加载。由于失败来自REST调用,它没有给我一个php编译错误。

如果加载jQuery看起来没问题,也把它作为一个选项。

我有这个问题,当我通过我的移动热点浏览互联网时。它也在压缩图像,并在主体标签的底部添加了以下脚本

<script language="javascript"><!--bmi_SafeAddOnload(bmi_load,"bmi_orig_img");//--></script>

当我连接到正确的wifi连接时,一切似乎都适合我。希望这能帮助某人。

在我的情况下,我忘了包括这个:

 <script src ="jquery-2.1.1.js"></script>

早些时候,我只包括导致此错误的jquery-mobile。

以下是最坏的情况:

一切似乎都很完美。花了几个小时后,我意识到添加在正确位置的jQuery文件实际上是一个内容为空的文件!

在我的例子中,我把我的.js文件放在jQuery脚本链接之前,把.js文件放在jQuery脚本链接之后解决了我的问题。

<script src="http://code.jquery.com/jquery-1.10.2.js"></script><script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js"></script><script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script><script src="exponential.js"></script>

再次被咬,缺少库源链接。Google托管库相似链接

我也遇到过类似的问题。我的测试服务器在“超文本传输协议”下运行良好。但是它在具有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上工作的人。

如果它在WordPress中,可能需要更改

$(document).ready(function() {

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

或添加

var $ = jQuery;

之前

$(document).ready(function() {

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

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

我也遇到过类似的问题,其中我能够在我的windows host浏览器中加载html页面(使用脚本),但无法在vm-ubuntu中加载。解决网络问题,解决了问题。

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

所以我改变了

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

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

在以下两种情况下也会出现错误。

  1. 超文本标记语言文件中缺少@节脚本元素
  2. 访问DOM元素时出错。例如,DOM元素的访问被提到为$(“js-toggle”)而不是$(“. js-toggle”)。实际上缺少句点

因此,需要遵循3件事-检查所需的脚本是否已添加,检查是否按所需的顺序添加,以及Java脚本中的第三个语法错误。

你需要先调用jQuery,然后调用javascript,因为java脚本依赖于jQuery,所以它应该在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

如果您想要任何其他JQuery cdn版本,请检查此链接

在此之后:

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

Wordpress:

<script type="text/javascript">var $ = jQuery;jQuery(document).ready(function($){//your stuff});</script>
<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小时来弄清楚它。

$(document).ready(function() {$.getJSON("<?php echo site_url('cadmin/survey/chart_survey_assisten'); ?>", function (json) {var acctregs = new Morris.Donut({// ID of the element in which to draw the chart.element: 'hadir-chart-bar-assisten',// Chart data records -- each entry in this array corresponds to a point on// the chart.data: json,xkey: 'label',ykeys: ['value'],labels: ['Nilai'],barRatio: 0.4,xLabelAngle: 35,hideHover: 'auto',resize: true});});});

根问题是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库。

您需要在超文本标记语言中包含类似于此的行:

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

我遇到了同样的问题,我通过将jQuery放在我代码中所有javascript代码的顶部来解决。

像这样的东西:

<script src="https://code.jquery.com/jquery-3.3.1.js"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script><script src="js/app.js" type="text/javascript"></script><script src="js/form.js" type="text/javascript"></script><script src="js/create.js" type="text/javascript"></script><script src="js/tween.js" type="text/javascript"></script>

希望将来能帮助一些人。

在包含jQuery JavaScript之前调用ready()函数。首先参考jQuery。

如果您在ASP.NETMVC中,您可以通过以下操作指定何时应该呈现JS代码:

1、page.cshtml中将<script>标记包装成一个部分,并给它一个名称,常用的名称是“脚本”:

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

2,在您的_Layout.cshtml页面中添加@RenderSection("Scripts", required: false),请确保将其放在引用JQuery源代码之后,这将使您的JS代码呈现晚于JQuery。

在我的情况下,安装Windows Server角色服务“静态内容”后,问题已经解决。(操作系统:Windows Server 2008 R2)

如何安装“静态内容”服务器角色服务:

  • (假设已经安装了“Web服务器”角色)>运行服务器管理器>单击左窗格中的“角色”>单击右窗格中“Web服务器”区域中的“添加角色服务”>在“Web服务器/通用HTTP功能”下选择“静态内容”>单击“下一步”>…

我在尝试运行不同的Web套接字示例时遇到了这个问题。

当将浏览器指向“http://localhost:8080/”时,我得到了这个错误,但是完全指向“http://localhost:8080/index.html”没有错误,因为在“index.html”中,一切都完全正常-在使用$之前包含了jQuery。

不知何故自动转发到index.html没有完全工作

将最新的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><script>$(document).ready(function(){$("button").click(function(){$("h2").hide();});});</script></head><body>
<h2>This will hide me</h2>

<button>Click me</button>
</body></html>

如果您正在使用laravling,当您忘记将代码包围时,刀片文件中会出现错误:

@section('section name')

……

@endsection

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

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

然后先在文件js add中编写脚本

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

首先在索引文件中包含jQuery CDN(或jQuery ref)。在包含您的JS文件以确保我们正在访问jQuery之前。#36825;我的工作

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

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

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