一尘不染

jQuery-未定义$

javascript

我有一个简单的jquery click事件

<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应用程序,我确定我真的很密集,谷歌上的每个地方都说要检查文件是否被正确引用,我已经检查过并再次检查过,请告知!:/


阅读 382

收藏
2020-04-22

共1个答案

一尘不染

该错误只能由以下三种情况之一引起:

  1. 您的JavaScript文件未正确加载到页面中
  2. 您有一个拙劣的jQuery版本。发生这种情况的原因是有人编辑了核心文件,或者插件可能覆盖了$变量。
  3. 您需要在页面完全加载之前以及jQuery完全加载之前运行JavaScript。

首先,请确保正确调用了什么脚本,它应该看起来像

<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
ready处理程序中。该代码可以使用分隔document.readyState

2020-04-22