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

Javascript 未捕获引用错误:$未定义?,javascript,jquery,referenceerror,Javascript,Jquery,Referenceerror,为什么这个代码会抛出一个错误 未捕获引用错误:$未定义 以前什么时候还可以 $document.readyfunction{ $'tabs>ul'.tabs{fx:{opacity:'toggle'}; $'featuredvid>ul'。选项卡; }; 选项卡中的结果不再关闭 jQuery在标题中引用: 在包含jQueryJavaScript之前调用ready函数。首先引用jQuery。您应该将对jQuery脚本的引用放在第一位 <script language="JavaScript"

为什么这个代码会抛出一个错误

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

以前什么时候还可以

$document.readyfunction{ $'tabs>ul'.tabs{fx:{opacity:'toggle'}; $'featuredvid>ul'。选项卡; }; 选项卡中的结果不再关闭

jQuery在标题中引用:


在包含jQueryJavaScript之前调用ready函数。首先引用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命令

$(document).ready(function() 

好吧,我的问题是不同的——这是Chrome中的文档安全模型

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

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


编辑:另一种方法是以https://而不是http://的形式链接到所有CDN托管的内容,这样模型就不会抱怨了。

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

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

然后它工作了。

您的JavaScript文件丢失,因此发生了此错误。只需在标记中添加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文件或本地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>


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

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

REST API调用失败,随后中断了库的加载。因为失败来自REST调用,所以它没有给我一个php编译错误


如果加载jquery看起来还可以的话,也可以选择这个选项。

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

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

当我连接到正确的wifi连接时,一切似乎都为我找到了工作。希望这对某人有所帮助。

就我而言,我忘了包括以下内容:

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

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

在我的例子中,我将.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>

我也有类似的问题。我的测试服务器在http上运行良好。然而,它在使用SSL的生产中失败了

所以在生产中,我添加了HTPPS而不是HTTP,在测试中,我保持了HTTP的原样

测试: 制作:
希望这能帮助正在wordpress上工作的人。

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

$(document).ready(function() {

或添加

var $ = jQuery;
以前

$(document).ready(function() {

我想尝试使我的脚本异步。然后我就忘了,当我上线时,[custom].js文件只加载了t的50% 他在jQuery.js之前花了很多时间

所以我改变了

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


以下两种情况下也会发生错误

@HTML文件中缺少节脚本元素 访问DOM元素时出错。例如,访问DOM元素被称为$js toggle,而不是$js toggle。实际上这段时间不见了
因此,需要遵循3件事-检查是否添加了必需的脚本,检查是否按必需的顺序添加了脚本,以及Java脚本中的第三个语法错误。

我修改了脚本标记以指向正确的内容,并在编辑器中将脚本顺序更改为正确的顺序。但是完全忘记保存更改。

在启动脚本之前添加库。您可以添加以下任何CDN来启动脚本

谷歌:

微软

Jquery

如果需要任何其他Jquery cdn版本,请选中此项

在此之后:

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


我也有类似的问题,你知道吗,这是因为当我在android设备webview中测试时,网络断开了,我没有意识到这一点,而本地js加载没有问题,因为它不需要网络。这看起来很可笑,但我花了1个小时才弄明白。

您还没有引用jQuery库

您需要在HTML中包含一行类似的内容:

<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.NET MVC,则可以通过执行以下操作来指定呈现JS代码的时间:

1,在你的page.cshtml中,将你的标签包装成一个部分,并给它一个名称,常用的名称是“scripts”:

@section scripts {
    <script>
        // JS code...
    </script>
}
2、在您的_Layout.cshtml页面中添加@RenderSectionScripts,required:false,请确保在引用Jquery源代码后放置它,这将使您的JS代码呈现晚于Jquery

将最新的jquery cdn放在主html页面的顶部

就像你的html主页是index.html一样

将jQueryCDN像这样放置在此页面顶部 $document.readyfunction{ $button.clickfunction{ $h2.5; }; }; 这会把我藏起来 点击我
在使用$或jQuery的脚本之前添加jQuery库,以便在脚本中标识$。 删除头上的标记脚本并将其放在末端

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


为了确保这一点很清楚:您不能将对jquery ui的脚本引用放在jquery脚本本身之前。这就是我解决问题的原因:先是jquery-x.x.min.js,然后是jquery-ui-xxxxxx.js。2年后,答案仍然没有勾选。它描述了这一个以及发生此错误时的4种常见情况。@Uzbekjon为我解决了这个问题。我的一个HTML文件中的脚本路径错误。@Jeremy,非常感谢。也可以将它放在任何部分视图MVC之前,这样它就可以用于部分视图中的任何脚本。@Uzbekjon现在已经快10年了,但它仍然没有被勾选。感谢您提供文章链接。首先,为了获得更好的页面渲染性能,您应该始终在JS文件之前链接CSS文件。第二css和js文件的顺序在当前cituation中应该没有影响。解决问题的方法不应该解决问题,也不应该做解决问题的方法。严格来说,Google snippet/示例是正确的-他们的src属性是一个无协议URL,这意味着浏览器应该使用调用的HTTP/HTTPS协议页看见如果您的页面曾经通过SSL提供服务,而脚本没有,这是避免混合内容警告的最佳做法。这里的一个常见问题可能是,在开发过程中使用协议相关URL,并且在晴天尝试从本地文件加载页面。您的浏览器将乐观地尝试加载file://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js 你想知道为什么它没有出现在网络控制台上。谢谢@PieterEnnes,我就是这样。也要感谢回答者!另外,请注意,您可以将协议关闭链接,它将根据上下文选择适当的协议,假设http和https版本都存在。再见。这一个解决了我的问题,我从如下Url加载脚本´//cdnjs.cloudflare.com/ajax/libs/jquery/1.12.0/jquery.min.js´。使用´…´效果很好https而不是http对我很有效,谢谢。这主要是我在“$”发生引用错误时发现的问题。如果在将jQuery插件加载到浏览器之前加载了自定义脚本,那么这种类型的问题可能会出现,这是一个完美的答案。。在我的例子中,脚本位于页脚。在我的例子中,JQuery位于页脚部分,因此首先调用JS函数。这是否回答了您的问题@事实上,这是正确的答案。你不需要其他任何东西来解决这个问题。这是我的问题。在引用了我的js文件之后,简单地使用了jquery。哦!在我的情况下,我必须删除关键延迟f
为什么这不是公认的答案?这应该是,因为,一个人必须疯狂地走下去才能看到真正的答案,这是有效的!!!!好吧,至少谷歌在标题下面显示了这个答案的文本,否则,我不知道该去哪里看,只是用这个来修复我的jschart。这解决了问题,这个.js文件应该放在jQuery脚本链接之前。我不知道没有引号的参数意味着什么。。。听起来你好像有一个引用错误。我在Freemarker中遇到了一个问题,原因是缺少单引号,所以该值被视为变量,而不是字符串。对于id属性$'someDiv',在为一个十年前的问题和三十七个其他答案添加答案时,指出您的答案所针对的问题的新方面是非常重要的。我的答案中的新方面是jquery CDN链接。在一个问题中,他使用下载的jquery并使用PHP包含在标题中。因此,正如我在回答中提到的,我使用了jquery CDN,这是使用jquery代码的一种准确、快速和高效的方法。更改jquery的加载位置并不能回答有关未定义$的问题。我也遇到了同样的错误。所以我用同样的方法来解决这个问题,所以我回答了这个问题,我是如何解决的。危险:这里使用的jQuery版本存在已知的安全问题,不受支持。从jQuery网站获取最新版本。
<script src="js/script.js"></script>
<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>
<script type="text/javascript">
$(function(){
    //your stuff
});
or
$(document).ready(function(){
    //your stuff
});    
</script>
<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>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<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>
@section scripts {
    <script>
        // JS code...
    </script>
}
 <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
/*global $ */
$(document).ready(function(){  });