JQuery - $ 未定义。

发布时间 2023-11-09 18:47:16作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=JQuery - $ 未定义。

我有一个简单的 jQuery 点击事件:

<script type="text/javascript">
    $(function() {
        $('#post').click(function() {
            alert("test"); 
        });
    });
</script>

以及在 site.master 文件中定义的 jQuery 引用:

<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>

我已经检查了脚本是否被正确解析,我能够在 Firebug 中查看标记并直接查看脚本,所以它一定已经被找到了。然而,我仍然得到以下报错信息:

$ is not defined

并且没有任何 jQuery 的效果。我还尝试过各种不同的变化,如 $(document).ready 和 jQuery 等等。

这是一个基于 .net 3.5 的 MVC 2 应用程序,我确定我非常困惑,谷歌上的所有内容都说要检查文件是否正确引用,我已经反复检查过了,请给予建议! ?


这个错误只可能是由以下三种情况之一引起的:

  1. 您的 JavaScript 文件没有正确加载到页面中。
  2. 您使用了损坏的 jQuery 版本。这可能是因为有人编辑了核心文件,或者某个插件可能覆盖了 $ 变量。
  3. 当页面还没有完全加载时,您就运行了 JavaScript,因此在 jQuery 完全加载之前发生了错误。

首先,确保脚本被正确调用,它应该像这样:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

而且不应该带有 asyncdefer 属性。

然后,您应该检查 Firebugnet 面板,查看文件是否被正确加载。如果没有,它将被标记为红色,并在旁边显示 "404"。如果文件加载正常,那么问题可能是第二点引起的。

确保所有的 jQuery JavaScript 代码都在代码块内运行,例如:

$(document).ready(function () {
  // 在这里写入您的代码
});

这将确保您的代码在 jQuery 初始化后才被加载。

最后要检查的一件事是,在加载 jQuery 之前不要加载任何插件。插件扩展了 "$" 对象,所以如果您在加载 jQuery 核心之前加载插件,就会出现您描述的错误。

注意: 如果您加载的代码不需要 jQuery 来运行,那么它不需要放在 jQuery 的 ready 处理程序内。该代码可以使用 document.readyState 进行分离。