相关文章推荐
$(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>
    
3 个评论
<script language="JavaScript" type="text/javascript" src="<?php echo get_option('siteurl') ?>/js/jquery-1.2.6.min.js"></script> Take this on top
在我的案例中,JQuery是在页脚部分,所以JS函数被首先调用。
这是否回答了你的问题?ReferenceError: $ is not defined
javascript
jquery
referenceerror
Olivers
Olivers
发布于 2010-01-16
30 个回答
Jeremy
Jeremy
发布于 2020-08-16
已采纳
0 人赞同

You should put the references to the jquery scripts first.

<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-ui的脚本引用放在jquery脚本本身之前。对我来说,这就是解决问题的方法:首先是jquery-x.x.x.min.js,然后是jquery-ui-xxxxxx.js。
2年后,答案仍然是没有 "打勾" )本篇文章描述了这一错误和发生这一错误的4种更常见的情况。
你能给出一步步的解决方案吗,我是新手。
Open Source
Open Source
发布于 2020-08-16
0 人赞同

你是在jQuery的JavaScript被包含之前调用ready函数。先引用jQuery。

@RamSharma 实际上,这就是正确的答案。你不需要其他东西来解决这个问题。
那么,解决方案是什么呢?
Marlin Mixon
Marlin Mixon
发布于 2020-08-16
0 人赞同

这就是我的解决方法。 最初我去了谷歌,复制并粘贴了他们CDN页面上的jQuery建议片段。

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

该片段不包括HTTP:HTTPS:中的src属性,但我的浏览器FireFox需要它,所以我把它改为。 编辑:这对我的谷歌浏览器也很有效

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

Then it worked.

Jnanaranjan
Jnanaranjan
发布于 2020-08-16
0 人赞同

如果你的自定义脚本在jQuery插件加载到浏览器之前被加载,那么这种类型的问题可能发生。所以,在调用jQuery插件后,一定要保留自己的JavaScript或jQuery代码,所以这个问题的解决方案是。

首先添加链接到托管在GoogleApis的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>
    
user2719890
user2719890
发布于 2020-08-16
0 人赞同

在我的例子中,我把我的.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>
    
lalithkumar
lalithkumar
发布于 2020-08-16
0 人赞同

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

Google:

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

Microsoft

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js"></script>

Jquery

如果你想要任何其他的Jquery cdn版本,请查看这个link.

在这之后。

<script type="text/javascript">
$(function(){
    //your stuff
$(document).ready(function(){
    //your stuff
</script>

Wordpress:

<script type="text/javascript">
var $ = jQuery;
jQuery(document).ready(function($){
     //your stuff
</script>
    
Sudipta Chatterjee
Sudipta Chatterjee
发布于 2020-08-16
0 人赞同

好吧,我的问题是不同的 - 它是Document Security model in Chrome.

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

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

Edit:另一种方法是将所有CDN托管的东西作为https://,而不是http://,这样模型就不会抱怨。

Mayer Spitz
Mayer Spitz
发布于 2020-08-16
0 人赞同

你在调用ready()函数之前,包括jQuery的JavaScript。先引用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更晚呈现。

xoxn-- 1'w3k4n
xoxn-- 1'w3k4n
发布于 2020-08-16
0 人赞同

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

$(document).ready(function() {
jQuery(document).ready(function($){
var $ = jQuery;

before

$(document).ready(function() {
    
crowicked
crowicked
发布于 2020-08-16
0 人赞同

我遇到了完全相同的问题,上面这些解决方案都没有帮助。 然而,我只是将.css文件链接到.js文件之后,问题就奇迹般地消失了。希望这有帮助。

0 人赞同

在你使用$或jQuery的脚本前添加jQuery库,这样$就可以在脚本中被识别。 移除头部的标签脚本,并将其置于bady末端

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

然后首先在文件js中写脚本,加入

/*global $ */
$(document).ready(function(){  });
    
危险:这里使用的jQuery版本有已知的安全问题,并且是不支持的。从jQuery网站获取最新版本。
Yannis Dran
Yannis Dran
发布于 2020-08-16
0 人赞同

在我的案例中,由于脚本调用的顺序不对,所以出现了这个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>
    
Sindri Þór
Sindri Þór
发布于 2020-08-16
0 人赞同

我想尝试使我的脚本非同步的.然后我忘记了,当我上线时,[custom].js文件只有50%的时间在jQuery.js之前加载。

所以我改变了

<script async src="js/script.js"></script>
<script src="js/script.js"></script>
    
The Dead Man
The Dead Man
发布于 2020-08-16
0 人赞同

我也有同样的问题,我通过把jQuery放在我的代码中所有javascript代码的顶部来解决。

Something like this:

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

希望能在未来帮助一些人。

Sagar Kumar
Sagar Kumar
发布于 2020-08-16
0 人赞同

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

比如,如果你的主HTML页面是index.html

像这样把jquery cdn放在这个页面的顶部

<!DOCTYPE html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $("h2").hide();
</script>
</head>
<h2>This will hide me</h2>
<button>Click me</button>
</body>
</html>
Dennis
Dennis
发布于 2020-08-16
0 人赞同

在我的例子中,这是一个打字错误,我忘了一个反斜杠,并且错误地引用了来源。

Before src="/scripts/jquery.js"

After src="scripts/jquery.js"

peroija
peroija
发布于 2020-08-16
0 人赞同

如果你是在.Net中做的,并且有正确的脚本文件引用,你的jQuery看起来很好,请确保你的用户可以访问该脚本文件。我正在做的项目(一个同事),他们的web.config拒绝匿名用户访问。我所做的页面是可以被匿名用户访问的,因此他们没有访问脚本文件的权限。在web.config中加入了以下内容,世界上的一切就都正常了。

  <location path="Scripts">
    <system.web>
      <authorization>
        <allow users="*"/>
      </authorization>
    </system.web>
  </location>
    
Naveen S
Naveen S
发布于 2020-08-16
0 人赞同

首先在索引文件中包括jQuery。在包括你的JS文件之前,先在索引文件中包括CDN(或jQuery参考),以确保我们正在访问jQuery。 以下几行对我有用

可以通过参考以下链接清楚地了解到这一点 参考网站。

https://www.tutorialrepublic.com/faq/how-to-fix-dollar-is-not-defined-error-in-jquery.php

答:在jQuery库加载后执行代码。在jQuery库加载后执行代码
最常见的错误 "Uncaught ReferenceError: $ is not defined "背后的原因是在jQuery库文件加载之前执行jQuery代码。因此,请确保你在jQuery库文件加载完成后才执行jQuery代码。

charles hsu
charles hsu
发布于 2020-08-16
0 人赞同

源文件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() 
    
Reinherd
Reinherd
发布于 2020-08-16
0 人赞同

这事以前就发生在我身上。

原因是我在用JS连接android和webview。我发送了一个没有引号的参数。

js.sayHello(hello);

而当我把它改成

js.sayHello('hello');

it worked.

Aluan Haddad
我不知道不带引号的参数是什么意思......听起来你有一个参考错误。
我在Freemarker中遇到了一个问题,原因是没有单引号,所以数值没有被当作字符串,而是被当作一个变量。
Sankar Krishnamoorthy
Sankar Krishnamoorthy
发布于 2020-08-16
0 人赞同

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

  • @section scripts element is missing from the HTML file
  • Error in accessing DOM elements. For example accessing of DOM element is mentioned as $("js-toggle") instead of $(".js-toggle"). Actually the period is missing
  • 因此,有三件事需要遵循--检查所需的脚本是否被添加,检查是否按照所需的顺序添加,以及在你的Java脚本中出现第三个语法错误。

    user3671115
    user3671115
    发布于 2020-08-16
    0 人赞同

    我也有类似的问题。 我的测试服务器在 "http "下工作正常。然而,它在有SSL的生产中失败了。

    因此,在生产中,我添加了 "HTPPS "而不是 "HTTP",在测试中,我保持了 "HTTP"。

    Test:

    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' ) );
    

    Production:

    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' ) );
    

    Hope this will help someone who is working on wordpress.

    Gaurav Gupta
    Gaurav Gupta
    发布于 2020-08-16
    0 人赞同

    你的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>
        
    Anand
    Anand
    发布于 2020-08-16
    0 人赞同

    在我的案例中,我忘了包括这个。

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

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

    Hexodus
    Hexodus
    发布于 2020-08-16
    0 人赞同

    我修改了脚本标签,使之指向正确的内容,并在编辑器中改变了脚本顺序,使之成为正确的内容。但完全忘了保存这个改动。

    justreed
    justreed
    发布于 2020-08-16
    0 人赞同

    糟糕!我的标签中出现了混合引号。我的标签里有混合引号,导致jquery引用中断。 在Chrome浏览器中进行检查,让我看到该文件没有被正确链接。

    asghar
    asghar
    发布于 2020-08-16
    0 人赞同

    你没有引用一个jQuery库。

    你需要在你的HTML中加入与此类似的一行。

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        
    jason
    jason
    发布于 2020-08-16
    0 人赞同

    I had a similar issue and it was because I was missing a closing > on a style sheet link.

    林果皞
    林果皞
    发布于 2020-08-16
    0 人赞同
    <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>
    

    我也有类似的问题,你知道吗,这是因为network is disconnected当我在安卓设备的webview中测试时,我并没有意识到这一点,而本地js的加载没有问题,因为它不需要网络。这似乎很荒谬,但它浪费了我1个小时的时间来解决这个问题。

    CodeToLife
    CodeToLife
    发布于 2020-08-16
    0 人赞同

    如果你是laraveling,当你忘记在代码周围加上.NET的时候,错误就会出现在刀片文件中。

     
    推荐文章