Uncaught ReferenceError:$未定义?

这个代码是如何引发的

Uncaught ReferenceError:$未定义

什么时候可以呢?

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

标签中的结果不再closures。

在头文件中引用了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脚本。

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

也许你在包含JQuery Javascript之前调用ready函数?

这是为我解决的。 最初我去了Google,并在他们的CDN页面上复制并粘贴了他们build议的jQuery代码片段:

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

代码片段在src属性中不包含HTTP:HTTPS:但是我的浏览器FireFox需要它,所以我将它改为:

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

然后它的工作。

如果您的自定义脚本在jQuery插件加载到浏览器之前加载,则可能会出现此类问题。 所以,在调用jQuery插件之后,请始终保留自己的JavaScript或jQuery代码,以便解决此问题:

首先将链接添加到GoogleApis托pipe的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> 

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

 <script src="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> 

好的,我的问题是不同的 – 这是Chrome中的 文档安全模式。

看这里的答案,很明显,我不知道在调用$(document).ready()等函数之前加载我的jquery文件。 但是,他们都处于正确的位置。

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

编辑 :这样做的另一种方式是链接到所有CDN托pipe的东西作为https://而不是http:// – 那么模型不抱怨。

如果是在wordpress中,可能需要更改

 $(document).ready(function() { 

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

或添加

 var $ = jQuery; 

之前

 $(document).ready(function() { 

我有完全相同的问题,以上这些解决scheme都没有帮助。 不过,我只是在.js文件后链接.css文件,问题奇迹般地消失了。 希望这可以帮助。

在启动脚本之前添加库。您可以添加以下CDN中的任何一个来启动它。

谷歌:

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

微软

 <script src="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="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> 

我可以说是唯一一个遇到过我这样的问题,但不pipe怎样都不好的人。 我想试着让我的脚本只是为了它的乐趣而asynchronous 。 然后我忘记了这一点,当我上线的时候[custom] .js文件只加载了jQuery.js之前的50%的时间。

所以我改变了

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

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

🙂

源文件jquery-1.2.6.min.js不被称为jQuery命令$()<..src='jquery-1.2.6.min.js'>

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

 $(document).ready(function() 

如果你在.Net中这样做,并且脚本文件被正确地引用,并且你的jQuery看起来很好,那么确保你的用户可以访问脚本文件。 我正在做的项目(同事)的web.config拒绝匿名用户的访问。 我正在处理的页面对匿名用户是可访问的,因此他们无法访问脚本文件。 把下面的代码放到了web.config中,所有的东西都是正确的:

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

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

这发生在我之前。

原因是我连接到一个JS的web视图的android。 我发送了一个不带引号的参数。

 js.sayHello(hello); 

当我改变它

 js.sayHello('hello'); 

有效。

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

src="/scripts/jquery.js"

src="scripts/jquery.js"

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

  1. HTML文件中缺less@section scripts元素
  2. 访问DOM元素时出错。 例如访问DOM元素被提到$(“js-toggle”)而不是$(“。js-toggle”)。 其实这个时期是不存在的

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

卫生署! 我在我的标签中混合了引号,导致jquery引用中断。 在Chrome浏览器中进行检查后,我发现文件没有正确关联。

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

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

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

我有一个类似的问题,这是因为我错过了样式表链接closures>。

好吧,我承认这是一个非常愚蠢的事情发生在我身上。 我修改了脚本标签,指向正确的内容,并将脚本顺序改为编辑器中的正确内容……但完全忘记保存更改;(现在你可能会笑,但当你感到疲倦时,问题可能会发生

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

我有类似的问题,你知道什么,这是因为networking是断开的,当我在android设备webviewtesting,我没有意识到,和本地js没有问题加载,因为它不需要networking。 这似乎很可笑,但它浪费了我〜1小时来弄清楚。

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

一个REST API调用失败了,之后又打破了这个库的加载。 由于失败是从REST调用,它没有给我一个PHP编译错误。

如果加载jquery好像还可以保持这个选项。

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

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

当我连接到适当的WiFi连接,似乎都为我find工作。 希望这可以帮助别人。

我有类似的问题。 我的testing服务器工作正常,“http”。 然而它在有SSL的生产中失败了。

因此,在生产中,我添加了“HTPPS”而不是“HTTP”,并且在testing中,我保留了它的“HTTP”。

testing:

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的人。

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

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

我有类似的问题,我可以在我的Windows主机浏览器中加载html页面(使用脚本),但无法加载到vm-ubuntu中。 解决networking问题,解决了问题。

 var $ = jQuery; jQuery(document).ready(function($){ 
 $(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 }); }); }); 

这是最糟糕的情况:

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

被这个再次咬住,缺less库源链接。 谷歌托pipe库 类似的链接