jQuery ReferenceError for" define"在jquery.js和$

时间:2014-08-16 21:24:07

标签: jquery

刚刚启动了jQuery教程,并坚持准备好的事件部分。打开html和文件,然后单击" jQuery"链接,没有像它应该的警报弹出窗口,它直接转到jQuery主页。

<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Demo</title>
</head>

<body>
    <a href="http://jquery.com/">jQuery</a>
    <script src="jquery.js"></script>
    <script>
    </script>
    <script>
        $( document ).ready(function() {
            $( "a" ).click(function( event ) {
                alert( "Thanks for checking" );
            });
        });


    </script>
</body>
</html>

更新和更多详情 在使用Firebug进行检查后,ReferenceError: define is not defined文件的两个错误为jquery.js,html文件为ReferenceError: $ is not defined。我猜测后者是由于jQuery无法正常工作。我在Bower上安装了jQuery,并将src目录中的jquery.js文件复制到我的html文件所在的目录中。这不是它的做法吗?我尝试使用此文件的原始位置的路径,但错误是相同的。

更新2:javascript/jquery而不是jquery.js插入<script src =有助于摆脱第一个ReferenceError,$ is not defined仍然存在起来。

解决方案:使用jquery.js的最小化版本(即jquery.min.js)为我排除了错误。使用谷歌托管的http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js或将其下载到您的HD都可以正常工作。

3 个答案:

答案 0 :(得分:1)

你的js脚本是否在另一个层次结构中?即/javascript/jquery.js

<script src="javascript/jquery.js"></script>

答案 1 :(得分:1)

TL; DR; 通过相对或绝对(URI或磁盘)路径引用正确的 jQuery文件。

完整故事

当我在这个问题上遇到同样的错误时,我正在开发一个只有一个网页test.html的简单网页应用程序:

  

未捕获的ReferenceError:未定义define       在jquery.js:1

我分享我的经验以防万一它也能帮助别人。我使用Visual Studio代码。因为我不得不使用jQuery,所以不是从jquery的网站下载js文件(在test.html中引用),而是进入Visual Studio代码的命令shell并使用下面的节点包安装jQuery模块经理(npm)命令:

npm install jquery

片刻命令完成后,您将观察到node_modulesdistexternal作为子文件夹的新文件夹src

enter image description here

没有多想,我进入了src目录并在其中找到了jquery.js。我想我可以通过给出这个文件的硬编码位置来引用我的网页中的jquery,如下所示:

 <script type="text/javascript"  src="C:\Users\rasik\Desktop\learnJs\node_modules\jquery\src\jquery.js" />

现在当我加载网页时,我遇到了问题中提到的错误。这里需要注意的是,使用jQuery库需要引用的实际jQuery文件(当你通过npm安装它时)可以在dist(distributable的缩写)目录下找到。我从src文件夹中引用了它。因此,当我更改路径时问题得到解决,如下所示:

<script type="text/javascript"  src="C:\Users\rasik\Desktop\learnJs\node_modules\jquery\dist\jquery.js" />

src文件夹包含jQuery的完整源代码,它还引用了许多其他文件。由于在引用test.html之前我的jquery.js页面中未引用其他依赖项js文件,因此很明显它将无法识别与其他js文件相关的代码。

答案 2 :(得分:0)

将您的jQuery代码更改为:

$( document ).ready(function() {
  $( "a" ).click(function( event ) {
    event.preventDefault();
    alert( "Thanks for checking" );
  });
});

event.preventDefault()部分将阻止被点击的元素执行其默认行为,在a元素的情况下,该行为将转到其href属性中定义的页面。 / p>