此代码如何引发
未捕获的ReferenceError:未定义$
以前什么时候可以?
$(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>
#1楼
h! 我在标签中混用了引号,导致jquery引用中断。 在Chrome浏览器中进行的检查使我看到文件未正确链接。
#2楼
没有将源文件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()
#3楼
好的,我的问题有所不同-这是Chrome中的 Document Security模型。
看这里的答案,很明显,我在调用$(document).ready()
等函数之前未以某种方式不加载我的jquery文件。 但是,他们都处于正确的位置。
就我而言,这是因为我正在通过安全的HTTPS连接访问内容,而该页面正在尝试从google等下载CDN托管数据。解决方案是将其存储在本地,然后直接包含而不是从每次CDN。
编辑 :执行此操作的另一种方法是以https://而不是http://的形式链接到所有CDN托管的内容-然后该模型不会抱怨。
#4楼
这就是为我解决的问题。 最初,我去Google并在其CDN页面上复制并粘贴了他们的jQuery建议片段:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
该代码段的src
属性中不包含HTTP:
或HTTPS:
,但是我的浏览器FireFox需要它,因此我将其更改为:edit:这也对我适用于Google Chrome
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
然后它起作用了。
#5楼
您的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>
#6楼
如果您在.Net中执行此操作并正确引用了脚本文件,并且jQuery看起来不错,请确保您的用户有权访问脚本文件。 我正在研究的项目(同事)的web.config拒绝访问匿名用户。 匿名用户可以访问我正在处理的页面,因此他们无权访问脚本文件。 将以下内容放入web.config中,一切都正确了:
<location path="Scripts">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
#7楼
这以前发生在我身上。
原因是我要使用JS将android连接到Webview。 我发送了一个不带引号的参数。
js.sayHello(hello);
当我将其更改为
js.sayHello('hello');
有效。
#8楼
在包含jQuery JavaScript之前,您正在调用ready函数。 首先参考jQuery。
#9楼
您应该首先将对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>
#10楼
如果在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>
#11楼
就我而言,我遇到了这个referenceError,因为脚本调用的顺序是错误的。 通过更改顺序解决了该问题:
<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>
#12楼
我有一个类似的问题,这是因为我在样式表链接上缺少结束符>。
#13楼
奇怪的是,我的问题来自PHP。
REST API调用失败,并且此后中断了库的加载。 由于失败是来自REST调用的,因此没有给我php编译错误。
如果加载jquery似乎还可以的话,请将其保留为一个选项。
#14楼
当我通过移动热点浏览Internet时遇到了这个问题。 它也正在压缩图像,并在body标签底部添加了以下脚本
<script language="javascript"><!--
bmi_SafeAddOnload(bmi_load,"bmi_orig_img");//-->
</script>
当我连接到正确的wifi连接时,一切似乎都能为我找到。 希望这对某人有所帮助。
#15楼
就我而言,我忘了包括:
<script src ="jquery-2.1.1.js"></script>
早些时候,我只包含了导致此错误的jquery-mobile。
#16楼
就我而言,我将.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>
#17楼
我有类似的问题。 我的测试服务器使用“ 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的人有所帮助。
#18楼
如果在wordpress中,可能需要进行更改
$(document).ready(function() {
至
jQuery(document).ready(function($){
或添加
var $ = jQuery;
之前
$(document).ready(function() {
#19楼
如果存在网络问题,也会发生这种情况。 这意味着,即使“ jquery脚本”已经到位,并且在使用之前就包含在内,但由于无法访问jquery脚本,因此在加载页面时,因此对“ $”的定义被视为“未定义的引用”。
测试/调试目的::您可以尝试在浏览器上访问“ jquery-script” URL。 如果可以访问,则您的页面应正确加载,否则将显示该错误(或其他与脚本相关的错误)。 示例-在浏览器(或浏览器上下文姿势)上,应该可以访问http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js 。
我有类似的问题,其中我可以在Windows主机浏览器中加载html页(使用脚本),但无法在vm-ubuntu中加载。 解决网络问题,问题得到解决。
#20楼
我想尝试使脚本异步 。 然后我忘了它,当我上线时,[custom] .js文件仅在jQuery.js之前加载50%的时间。
所以我改变了
<script async src="js/script.js"></script>
至
<script src="js/script.js"></script>
#21楼
在以下两种情况下也会发生该错误。
- HTML文件中缺少@section脚本元素
- 访问DOM元素时出错。 例如,对DOM元素的访问被称为$(“ js-toggle”)而不是$(“。js-toggle”)。 其实这个时期不见了
因此,要遵循3件事-检查是否添加了必需的脚本,检查是否以必需的顺序添加了该脚本以及Java脚本中的第三种语法错误。
#22楼
var $ = jQuery;
jQuery(document).ready(function($){
#23楼
我修改了脚本标记以指向正确的内容,并在编辑器中将脚本顺序更改为正确的顺序。 但是完全忘记保存更改。
#24楼
在启动脚本之前,请添加库。您可以添加以下任何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>
#25楼
<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个小时才弄清楚。
#26楼
我遇到了完全相同的问题,上述所有解决方案均无济于事。 但是,我只是在.js
文件之后链接了.css
文件,问题奇迹般地消失了。 希望这可以帮助。
#27楼
根本问题是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出错。您可以在部分页面上使用。
#28楼
我遇到了同样的问题,我通过将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>
希望将来能对您有所帮助。
#29楼
在包含jQuery JavaScript之前,您正在调用ready()
函数。 首先参考jQuery。
如果您使用的是ASP.NET MVC,则可以通过执行以下操作指定何时呈现JS代码:
1,在page.cshtml
将<script>
标记包装到一个节中,并为其命名,要使用的通用名称是'scripts':
@section scripts {
<script>
// JS code...
</script>
}
2,在_Layout.cshtml
页面中添加@RenderSection("Scripts", required: false)
,确保在引用Jquery源代码后将其放入,这将使您的JS代码晚于Jquery呈现。
#30楼
就我而言,这是一个错字,我忘记了一个反斜杠,并且错误地引用了源。
在src="/scripts/jquery.js"
在src="scripts/jquery.js"