$(document).ready没有触发?

6
这段代码很简单,为什么它不能工作呢?当页面加载时,应该显示一个弹出框,上面写着“准备就绪”。
<!DOCTYPE html>
<html>
    <head>
        <title>
        Title
        </title>
        <script type="text/javascript">
            $(document).ready(function() {
                alert("ready");
            });
        </script>
    </head>
    <body>
        Content
    </body>
</html>

我感觉这是非常明显的事情,但我现在已经无法思考清晰了。

我已经在最新版本的Chrome和Firefox中都尝试过了。


代码在实际版本中运行良好。 - Shahin
我更新了代码,现在它可以工作了。为避免混淆,我已经删除了链接。 - Hanna
8个回答

29

你的 jQuery 引用在哪里?

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

1.4.2 已经过了几个版本,现在有 1.6.1 可用:https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js - Jasper
2
我在想,你知道什么很有趣吗?我复制的源代码 - orkutWasNotSoBad

17

我遇到了这个问题,但是引用了jQuery库。当我把JavaScript代码移动到外部文件时,我不小心将之前的script标签写成了自闭合标签:

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


我遇到了同样的问题。你的答案解决了我的问题。这真的很奇怪。 - Noushad
我做了更愚蠢的事情,我忘记了 }); </script> - citynorman

3

您忘记引入jQuery,因此$未定义。

在Chrome的JS控制台上一眼就能看出来。每当JS出现问题时,您应该首先检查控制台以查找错误。通常这会告诉您出了什么问题。


点赞,特别是针对“控制台查找错误”的部分。 - Jach

2
非常简单,您正在尝试创建一个jquery对象,而没有链接到jquery。
选项一
链接到jquery 使用jquery 1.6.1(目前最新版本),1.4.x是旧版本。
请参见此处 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 选项二
alert();可以在没有jquery的情况下调用,因此删除$(document).ready()部分。

1

我知道这是一个老问题,但我刚遇到了同样的问题。 我想为其他jQuery新手添加这个解决方法。我在Stackoverflow上没有找到这个答案。 在我的情况下,我必须改变:

<script src="jquery.min.js"></script>
<script src="lodash.min.js"></script>
<script src="app.js"></script>

to:

<script src="./jquery.min.js"></script>
<script src="./lodash.min.js"></script>
<script src="./app.js"></script>

看起来jquery需要指定正确的相对路径。在我的情况下,脚本标记在index.html中,并且目录层次是扁平的,即
<dirname>
  -- index.html
  -- app.js
  -- jquery.min.js
  -- lodash.min.js

0

我在运行时包含了vsdoc(Visual Studio智能感知脚本),遇到了这个问题。不得不像这样在运行时隐藏它:

@if(false){
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.0-vsdoc.js" type="text/javascript"></script>
}

0

在编写 jQuery 代码之前,您必须先引入 jQuery...


0
您没有在任何地方引用jQuery库,因此$(document).ready将无法使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接