Uncaught ReferenceError: $ is not defined?
为什么这个代码抛出一个
Uncaught ReferenceError: $ is not defined
以前什么时候可以?
1 2 3 4 | $(document).ready(function() { $('#tabs > ul').tabs({ fx: { opacity: 'toggle' } }); $('#featuredvid > ul').tabs(); }); |
选项卡中的结果不再关闭。
jquery在头中引用:
1 2 3 | <script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/sprinkle.js"> <script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-1.2.6.min.js"> <script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-ui-personalized-1.5.2.packed.js"> |
-
在我的例子中,我把我的
.js 文件放在jquery脚本链接之前,把.js 文件放在jquery脚本链接解决了我的问题之后。1
2
3
4<script src="http://code.jquery.com/jquery-1.10.2.js">
<script src="http://code.jquery.com/ui/1.11.2/jquery-ui.js">
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js">
<script src="exponential.js">- 只是用这个修复了我的JSchart。
好吧,我的问题不一样-它是Chrome中的文档安全模型。
查看这里的答案,很明显在调用
$(document).ready() 等函数之前,我没有加载jquery文件。然而,他们都处于正确的位置。在我的例子中,这是因为我通过安全的HTTPS连接访问内容,而页面试图从Google等下载cdn托管的数据。解决方案是在本地存储这些数据,然后每次直接包含这些数据,而不是从cdn。
编辑:另一种方法是链接到所有的cdn托管的东西,比如https://而不是http://,这样模型就不会抱怨了。
- 另外,请注意,您可以让协议不链接,它将根据上下文选择适当的协议(假设HTTP和HTTPS版本都存在)。见stackoverflow.com/a/3622615/4332
- 是的。这个解决了我的问题,我从这样的URL加载脚本&180;/cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.j&zwnj;&8203;s&180;。使用&180;cdnjs…&180;效果很好
在启动脚本之前添加库。您可以添加以下任何一个cdn来启动它。
谷歌:
1<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js">微软
1<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js">滑动分页
如果您需要任何其他jquery cdn版本,请检查此链接。
此后:
1
2
3
4
5
6
7
8<script type="text/javascript">
$(function(){
//your stuff
});
or
$(document).ready(function(){
//your stuff
});WordPress:
1
2
3
4
5<script type="text/javascript">
var $ = jQuery;
jQuery(document).ready(function($){
//your stuff
});如果在WordPress中,可能需要更改
1$(document).ready(function() {到
1jQuery(document).ready(function($){或添加
1var $ = jQuery;之前
1$(document).ready(function() {我也有同样的问题,上面的这些解决方案都没有帮助。然而,我只是把
.css 文件链接到.js 文件之后,问题奇迹般地消失了。希望这有帮助。- 首先,为了获得更好的页面呈现性能,应该始终在JS文件之前链接CSS文件。第二,CSS和JS文件的顺序在当前引用中不应该有任何影响。
- "什么解决了你的问题不应该解决你的问题,你也不应该做什么解决了你的问题。"
在我的例子中,由于脚本调用顺序错误,所以出现了这个引用错误。通过改变顺序解决了这个问题:
1
2<script src="js/index.js">
<script src="js/jquery-1.10.2.js">到
1
2<script src="js/jquery-1.10.2.js">
<script src="js/index.js">- 大多数情况下,当"$"发生引用错误时,我也发现了这个问题。
我是唯一有我这种问题的人,但无论如何我都会把它放下。我想让我的脚本异步只是为了好玩。然后我忘记了,当我上线的时候,jquery.js之前的50%时间都是由[custom].js文件加载的。
所以我改变了
1<script async src="js/script.js">到
1<script src="js/script.js">:)
如果在.NET中执行此操作并正确引用脚本文件,并且jquery看起来很好,请确保您的用户有权访问脚本文件。我正在处理的项目(一个同事)的web.config拒绝匿名用户访问。匿名用户可以访问我正在处理的页面,因此他们无权访问脚本文件。将以下内容放到web.config中,一切都正常:
1
2
3
4
5
6
7<location path="Scripts">
<system.web>
</authorization>
</system.web>
</location>源文件
jquery-1.2.6.min.js 不是jquery命令,$() 比<..src='jquery-1.2.6.min.js'> 早执行。请先运行
<.. src="/js/jquery-1.2.6.min.js.."> ,确认src路径正确,然后执行jquery命令1$(document).ready(function()在我的例子中,它是一个打字错误,我忘记了一个反斜杠,并且错误地引用了源代码。
在
src="/scripts/jquery.js" 之前在
src="scripts/jquery.js" 之后这以前发生在我身上。
原因是我用JS将Android连接到一个WebView。我发送了一个没有引号的参数。
1js.sayHello(hello);当我把它改成
1js.sayHello('hello');它奏效了。
- 我不知道没有引号的参数是什么意思…听起来你有参考错误。
- 我在FreeMarker中遇到了一个问题,原因是缺少单引号,因此该值被视为变量而不是字符串。
该错误也将在以下两个场景中发生。
- @HTML文件中缺少节脚本元素
- 访问DOM元素时出错。例如,访问dom元素被称为$("js toggle"),而不是$(".js toggle")。实际上这段时间不见了
- 是啊。对于ID属性$('somediv')
- ASP.NET MVC@节脚本指针向上投票
- 这绝对不是答案。你必须添加一些解释。
- 这是一个针对
WordPress 的解决方案,您应该提到这一点。 - 你救了我一天。在WordPress中很难做到这一点,但除了这个解决方案,没有一个能像魅力一样发挥作用。
- (假设已经安装了"Web服务器"角色)>运行服务器管理器>单击左窗格中的"角色">单击右窗格中的"Web服务器"区域中的"添加角色服务">选择"Web服务器/通用HTTP功能"下的"静态内容">单击"下一步">…
因此要遵循3个步骤——检查需要的脚本是否被添加,检查它是否按要求的顺序添加,以及Java脚本中的第三个语法错误。
我也遇到了同样的问题,我通过将jquery放在代码中所有javascript代码的顶部来解决这个问题。
像这样:
1 2 3 4 5 6 | <script src="https://code.jquery.com/jquery-3.3.1.js"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"> <script src="js/app.js" type="text/javascript"> <script src="js/form.js" type="text/javascript"> <script src="js/create.js" type="text/javascript"> <script src="js/tween.js" type="text/javascript"> |
希望能在将来帮助一些人。
您的javascript文件丢失,因此发生了此错误。只需在
1 2 | <script src="js/sample.js" type="text/javascript"> <link href="css/sample.css" rel="stylesheet" type="text/css" /> |
或者在标签中添加以下代码:
1 | <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> |
呸!我的标签中有混合引号,导致jquery引用中断。在chrome中执行检查可以让我看到文件没有正确链接。
在包含jquery javascript之前,您正在调用
如果您使用的是ASP.NET MVC,则可以通过执行以下操作指定应在何时呈现JS代码:
1、在你的
1 2 3 4 5 | @section scripts { // JS code... } |
2、在您的
好吧,我承认这件事对我来说真是一件蠢事。我修改了脚本标记以指向正确的内容,并将脚本顺序更改为编辑器中的正确内容…但是完全忘了省钱;(你现在可能会笑,但是当你累了的时候,可能会发生各种奇怪的问题。我
在我的案例中,我忘记了包括以下内容:
1 | <script src ="jquery-2.1.1.js"> |
早些时候,我只包括引起这个错误的jquery mobile。
1 2 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"> <script type="text/javascript" src="local_xxx.js"> |
我也有类似的问题,你知道吗,是因为我在android设备webview测试时网络断开了,我没有意识到,本地的js也没有问题,因为它不需要网络。这似乎很荒谬,但我花了1个小时才弄明白。
我有一个类似的问题,因为我在样式表链接上缺少一个结束>。
如果存在网络问题,也可能发生这种情况。这意味着,即使"jquery脚本"已经就位,并且在使用之前包含在其中,因为在加载页面时,jquery脚本不可访问,因此"$"的定义被视为"未定义的引用"。
出于测试/调试目的::您可以尝试访问浏览器上的"jquery脚本"URL。如果它是可访问的,那么您的页面应该正确加载,否则它将显示上述错误(或其他与脚本相关的错误)。示例-http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js应该可以在浏览器(或浏览器上下文状态)上访问。
我也遇到了类似的问题,我可以在Windows主机浏览器中加载HTML页面(使用脚本),但无法在VM Ubuntu中加载。解决网络问题,解决问题。
1 2 | var $ = jQuery; jQuery(document).ready(function($){ |
我也有类似的问题。我的测试服务器使用"http"运行正常。但是,它在使用SSL的生产中失败了。
因此,在生产中,我添加了"htpps"而不是"http",在测试中,我将其保持为"http"。
测试:wp_register_脚本("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_脚本("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的人。
很奇怪,我的问题来自于PHP。
一个RESTAPI调用失败了,随后它破坏了库的加载。因为失败来自于REST调用,所以它没有给我一个PHP编译错误。
如果加载jquery看起来还可以,那么也可以将其作为一个选项。
当我通过我的移动热点浏览互联网时,我遇到了这个问题。它还压缩了图像,并在body标签的底部添加了以下脚本
1 2 | <script language="javascript"><!-- bmi_SafeAddOnload(bmi_load,"bmi_orig_img");//--> |
当我连接到合适的WiFi连接时,一切似乎都能为我找到。希望这能帮助别人。
在我的例子中,在安装Windows服务器角色服务"静态内容"之后,问题已经得到解决。(操作系统:Windows Server 2008 R2)
如何安装"静态内容"服务器角色服务:
根问题是一个
1 2 3 4 5 6 7 8 9 | try { var stripe = Stripe('pk_test_---------'); } catch (e) { stripe = null; } if(stripe){ //we are good to go now } |
显然,修复方法是在调用方法之前加载任何sdk/库(例如jquery),但是如果您在一个页面上运行共享脚本,而该页面没有加载您在一个子集页面上使用的任何库,那么
您尚未引用jquery库。
您需要在HTML中包含与此类似的行:
1 | <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"> |