我有一个简单的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应用程序,我确定我真的很密集,谷歌上的每个地方都说要检查文件是否被正确引用,我已经检查过并再次检查过,请告知! :/
#1楼
只需将jquery网址放在jquery代码的顶部
像这样 -
<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('#post').click(function() {
alert("test");
});
});
</script>
#2楼
听起来jQuery无法正确加载。 您正在使用哪个源/版本?
另外,它可能是名称空间冲突,因此请尝试显式使用jQuery而不是使用$
。 如果noConflict
,则您可能希望使用noConflict
来确保使用$
的其他代码不会中断。
#3楼
我有同样的问题,这是因为我对jQuery.js的引用不在标记中。 一旦我切换了,一切就开始起作用。
安东尼
#4楼
在asp.net中使用jQuery时,如果使用的是母版页,并且要在其中加载jquery源文件,请确保在所有jquery脚本引用之后都具有标头contentplaceholder。
我有一个问题,使用该母版页的任何页都将返回“未定义$”,这仅仅是因为错误的顺序使客户端代码在创建jquery对象之前运行。 因此,请确保您具有:
<head runat="server">
<script type="text/javascript" src="Scripts/jquery-VERSION#.js"></script>
<asp:ContentPlaceHolder id="Header" runat="server"></asp:ContentPlaceHolder>
</head>
这样,代码将按顺序运行,您将能够在子页面上运行jQuery代码。
#5楼
就我而言,我指的是Google托管的JQuery。 它已正确包含在内,但我在HTTPS页面上,并通过HTTP调用它。 一旦解决了问题(或允许使用不安全的内容),它就会立即启动。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3161262