刚刚启动了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都可以正常工作。
答案 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_modules
,dist
,external
作为子文件夹的新文件夹src
:
没有多想,我进入了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>