小编典典

JQuery - $ 未定义

all

我有一个简单的 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 中查看脚本,所以我一定被找到了。但是,我仍然得到:

$ 未定义

并且没有一个 jquery 工作。我也尝试过类似$(document).ready和 jQuery 等的各种变体。

这是 .net 3.5 上的 MVC 2 应用程序,我确定我真的很密集,谷歌上到处都说要检查文件是否正确引用,我已经检查过并再次检查过,请指教!:/


阅读 316

收藏
2022-03-09

共1个答案

小编典典

该错误只能由以下三件事之一引起:

  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

然后您应该检查Firebug 网络
面板以查看文件是否实际加载正确。如果没有,它将以红色突出显示,并在其旁边显示“404”。如果文件加载正确,则意味着问题是 2。

确保所有 jQuery javascript 代码都在代码块中运行,例如:

$(document).ready(function () {
  //your code here
});

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

最后要检查的一件事是确保在加载 jQuery 之前没有加载任何插件。 插件扩展了“$”对象,因此如果您在加载 jQuery
核心之前加载插件,那么您将收到您描述的错误。

注意: 如果您正在加载不需要 jQuery 运行的代码,则不需要将其放置在 jQuery
就绪处理程序中。该代码可以使用document.readyState.

2022-03-09