$(document).ready(function() Uncaught ReferenceError: $ is not defined

Posted

技术标签:

【中文标题】$(document).ready(function() Uncaught ReferenceError: $ is not defined【英文标题】:$(document).ready(function() Uncaught ReferenceError: $ is not defined$(document).ready(function() Uncaught ReferenceError: $ is not defined 【发布时间】:2012-06-07 13:17:36 【问题描述】:

您好,我在使用以下代码时遇到“未捕获的 ReferenceError:$ 未定义”

我目前在我的日志中收到以下错误。我一直在查看框架中的示例,但似乎无法找到错误所在。自从我做任何 html 或 js 以来已经有十多年了,那时我所做的只是非常基本的东西。任何帮助将不胜感激

<script type="text/javascript">
var sQuery = '<?php echo $sQuery; ?>';

$(document).ready(function()
    if($('input[name=sPattern]').val() == sQuery) 
        $('input[name=sPattern]').css('color', 'gray');
    
    $('input[name=sPattern]').click(function()
        if($('input[name=sPattern]').val() == sQuery) 
            $('input[name=sPattern]').val('');
            $('input[name=sPattern]').css('color', '');
        
    );
    $('input[name=sPattern]').blur(function()
        if($('input[name=sPattern]').val() == '') 
            $('input[name=sPattern]').val(sQuery);
            $('input[name=sPattern]').css('color', 'gray');
        
    );
    $('input[name=sPattern]').keypress(function()
        $('input[name=sPattern]').css('background','');
    )
);
function doSearch() 
    if($('input[name=sPattern]').val() == sQuery)
        return false;
    
    if($('input[name=sPattern]').val().length < 3) 
        $('input[name=sPattern]').css('background', '#FFC6C6');
        return false;
    
    return true;

</script>

【问题讨论】:

您的源代码中是否包含 jQuery 库? 确保将 jquery 包含到您的项目中 您没有针对此问题的正确标签 - 每当您提出问题时,请添加相关标签 Interesting Uncaught ReferenceError: "$ is not defined" 和 Uncaught ReferenceError: $ is not defined 和 many others 的可能重复项。 【参考方案1】:

您似乎没有导入jquery。这些 $ 函数来自这个非标准(但非常有用)的库。

在那里阅读教程:http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery 它从如何导入库开始。

【讨论】:

浏览器不包含,你必须这样做。但我同意你的观点是这个库是几乎每个人都应该使用的库(这在开发世界中是一种非常罕见的现象,通常我发现人们太愿意添加无用的库)。 非本地应该是这个词。你应该看看here :D 我明白你的意思。说到“母语”,我不是以英语为母语的人,因此并不总是选择最合适的词。对不起。【参考方案2】:

无需使用jQuery.noConflict 和所有

试试这个:

// Replace line no. 87 (guessing from your chrome console) to the following

jQuery(document).ready(function($)

// All your code using $

);

如果在第87行仍然报错,比如Uncaught reference error: jQuery is not defined,那么你需要在使用之前包含jQuery文件,你可以查看上面的答案

【讨论】:

感谢上帝,感谢存在 =) 你的代码救了我。【参考方案3】:

将此代码放在&lt;head&gt;&lt;/head&gt;标签中:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.0.min.js"></script>

【讨论】:

【参考方案4】:

如果您确定包含 jQuery,请尝试将 $ 替换为 jQuery 并重试。

类似

jQuery(document).ready(function()..

如果你得到错误,你还没有包含 jQuery。

【讨论】:

【参考方案5】:

我知道这是一个老问题,大多数人都给出了很好的答案。但仅供参考,希望能节省别人的时间。检查您的功能是否:

$(document).ready(function()

在您加载了 JQuery 库之后被调用

【讨论】:

【参考方案6】:

许多其他人在上面回答了您的问题。当您的脚本找不到 jQuery 脚本并且如果您使用其他框架或 cms 时会出现此问题,那么 jQuery 和其他库之间可能存在冲突。 在我的情况下,我使用如下 - `

<script src="js_directory/jquery.1.7.min.js"></script>
    <script>
    jQuery.noConflict();
    jQuery(document).ready(
    function($)
    //your other code here
    );</script>

`

这里可能有一些语法错误。请原谅我,因为我是用手机写的。谢谢

【讨论】:

【参考方案7】:

记住一定要先加载jquery脚本,再加载脚本js

<script type="text/javascript" src="http://code.jquery.com/jquery-2.2.4.min.js"></script>
<script type="text/javascript" src="example.js"></script>

Html 是按顺序读取的!

【讨论】:

【参考方案8】:

$是jQuery库提供的函数,除非你加载了jQuery库,否则它是不可用的。

您需要添加jQuery(通常带有&lt;script&gt; 元素,该元素可以指向库的本地副本或托管在CDN 上的副本)。确保您使用的是 currentsupported 版本:关于这个问题的许多答案建议使用 jQuery 的 1.x 或 2.x 版本,它们不再受支持并且已知安全问题。

<script src="/path/to/jquery.js"></script>

确保在运行任何依赖它的脚本之前加载 jQuery

jQuery homepage 将有一个下载当前版本库的链接(在撰写本文时它是 3.5.1,但在您阅读本文时可能会发生变化)。

在页面的下方,您会找到a section on using jQuery with a CDN,它链接到许多将为您托管图书馆的地方。


(注意:其他一些库提供了 $ 函数,并且浏览器具有仅在开发者工具控制台中可用的原生 $ 变量,但这个问题与这些无关)。

【讨论】:

以上是关于$(document).ready(function() Uncaught ReferenceError: $ is not defined的主要内容,如果未能解决你的问题,请参考以下文章

$(function) ready onload 等区别

在重新加载/刷新页面时,未调用dojo / ready函数

jQuery文档内部或外部的功能准备就绪

隐藏Flashdata消息

吸盘鱼褪色

jQuery 事件