这么简单的代码,为什么不工作? 页面加载时,它应显示一个“就绪”的警告框。
<!DOCTYPE html>
<html>
<head>
<title>
Title
</title>
<script type="text/javascript">
$(document).ready(function() {
alert("ready");
});
</script>
</head>
<body>
Content
</body>
</html>
我觉得这是非常明显的事情,但我正处于一个我无法思考的地步。
我在最新版本的Chrome和Firefox中都试过了。
答案 0 :(得分:29)
你的jquery ref在哪里?
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
答案 1 :(得分:12)
我遇到了这个问题,但引用了jQuery。在将我的javascript移动到外部文件时,我不小心将前一个脚本标记写为自闭标记:
<script type="text/javascript" src="/wherever/whatever.js" />
<script type="text/javascript">
$(document).ready(function(){ /* not hit */ });
</script>
外部参考标记不能自动关闭。它应该是<script type="text/javascript" src="/wherever/whatever.js"></script>
答案 2 :(得分:3)
您忘记包含jQuery,因此$
未定义。
只需一眼就能看出Chrome中的JS控制台。每当JS不会去的时候,你的第一次检查应该始终是控制台来查找错误。通常这会告诉你怎么了最新的。
答案 3 :(得分:2)
非常简单,你正在尝试创建一个jquery对象而不链接到jquery。
链接到jquery 使用jquery 1.6.1(目前最新版本)1.4.x是旧版本。
见here
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
警报();可以在没有jquery的情况下调用,因此删除$(document).ready()
位
答案 4 :(得分:1)
我知道这是一个老问题,但我遇到了同样的问题。 我以为我会为其他jquery新手添加这个。我没有在Stackoverflow上找到这个答案。 就我而言,我不得不改变:
<script src="jquery.min.js"></script>
<script src="lodash.min.js"></script>
<script src="app.js"></script>
为:
<script src="./jquery.min.js"></script>
<script src="./lodash.min.js"></script>
<script src="./app.js"></script>
看起来jquery需要指定正确的相对路径。就我而言,脚本标签 在index.html内部,dir层次结构是平的,即
<dirname>
-- index.html
-- app.js
-- jquery.min.js
-- lodash.min.js
答案 5 :(得分:0)
你必须在你的jquery代码之前包含jquery ......
答案 6 :(得分:0)
您没有在任何地方引用jQuery库,因此$(document).ready
将无效。
答案 7 :(得分:0)
当我在运行时包含vsdoc(Visual Studio intellisense脚本)时,我遇到了这个问题。不得不在运行时隐藏它:
@if(false){
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.0-vsdoc.js" type="text/javascript"></script>
}