我有一个简单的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应用程序,我确信我真的很密集,谷歌上的所有地方都说要检查文件是否被正确引用,我已经检查了一遍又一遍,请建议!: /


当前回答

我只是做了同样的事情,发现我有很多

type="text/javacsript"

所以他们正在加载,但没有进一步提示为什么它不能工作。不用说,正确的拼写解决了这个问题。

其他回答

这意味着您的jQuery库还没有加载。

您可以在拖动jQuery库后移动代码。

或者你可以用这样的东西

window.onload = function(){
  // Your code here
  // $(".some-class").html("some html");
};  

我也遇到过类似的问题。在我的c# MVC应用程序中,JQuery没有被识别出来。我需要移动@Scripts.Render("~/bundles/jquery")从底部的我的_Layout。CSHTML文件到section的头。另外,如果你正在使用visual studio,请确保你已经将Jquery作为Nuget包!

<head>
    @Scripts.Render("~/bundles/jquery")
</head>

如果脚本标签有延迟属性,则显示错误

未定义Uncaught ReferenceError: $

并且必须从脚本标记中删除属性defer

如上所述,它的发生是由于$变量的冲突。

我通过为jQuery保留一个没有冲突的次要变量来解决这个问题。

var $j = jQuery.noConflict();

然后在任何地方使用它

$j( "div" ).hide();

更多细节可以在这里找到

只需把jquery url放在你的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>