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"
在以下两种情况下也会出现错误。
- HTML文件中缺less@section scripts元素
- 访问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库 类似的链接