我有一个简单的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应用程序,我确定我真的很密集,谷歌上的每个地方都说要检查文件是否被正确引用,我已经检查过并再次检查过,请告知!:/
该错误只能由以下三种情况之一引起:
首先,请确保正确调用了什么脚本,它应该看起来像
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
并且不应具有 async 或 defer 属性。
然后,您应该检查Firebug 网络面板,以查看文件是否实际上已正确加载。如果不是,它将以红色突出显示并在其旁边显示“ 404”。如果文件加载正确,则意味着问题是第2个。
确保所有jQuery javascript代码都在代码块中运行,例如:
$(document).ready(function () { //your code here });
这将确保在初始化jQuery 之后 加载您的代码。
最后要检查的一件事是确保 在加载jQuery之前不加载任何插件。插件扩展了“$”对象,因此,如果您在加载jQuery核心之前先加载插件,则会得到您所描述的错误。
注意: 如果要加载不需要jQuery来运行的代码,则无需将其放在jQuery ready处理程序中。该代码可以使用分隔document.readyState。
document.readyState