jQuery-$未定义

只谈情不闲聊 提交于 2020-02-26 10:21:42

我有一个简单的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调用它。 一旦解决了问题(或允许使用不安全的内容),它就会立即启动。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!