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


当前回答

这是解决这个问题的常见问题,你必须检查一些点

包含主要Jquery库 检查跨浏览器问题 添加库顶部的jquery代码 检查cdn可能被阻止。

详情请见本博客

其他回答

在我的情况下,我指向谷歌托管JQuery。它被正确地包含在内,但我在一个HTTPS页面上,并通过HTTP调用它。一旦我修复了这个问题(或允许不安全的内容),它就立即启动了。

我们有同样的问题....但是我不小心检查了文件夹属性并设置了一些东西…

你必须检查你正在访问的每个文件夹的属性。

右键单击文件夹 “权限”选项卡 设置文件夹访问权限: OWNER:创建和删除文件 GROUP:访问文件 其他:访问文件

我希望这是解决方案......

我也遇到了同样的问题,这是因为我对jQuery.js的引用不在标签中。一旦我把它换了,一切都开始运转了。

安东尼

这个错误意味着jQuery还没有加载到页面上。使用$(document).ready(…)或其任何变体都没有好处,因为$是jQuery函数。

使用窗口。Onload应该在这里工作。注意,只有一个函数可以分配给window.onload。为了避免丢失原始的onload逻辑,你可以像这样装饰原始函数:

originalOnload = window.onload;
window.onload = function() {
  if (originalOnload) {
    originalOnload();
  }
  // YOUR JQUERY
};

这将执行最初分配给window的函数。onload,然后执行// YOUR JQUERY。

有关装饰器模式的更多详细信息,请参阅https://en.wikipedia.org/wiki/Decorator_pattern。

首先,您需要确保加载了jQuery脚本。这可能来自CDN或本地网站。如果你在尝试使用jQuery之前不先加载这个,它会告诉你jQuery没有定义。

<script src="jquery.min.js"></script>

这可能是在HEAD或页脚,只是确保你加载它之前,你试图调用任何其他jQuery的东西。

然后,您需要使用以下两种解决方案之一

(function($){
// your standard jquery code goes here with $ prefix
// best used inside a page with inline code, 
// or outside the document ready, enter code here
 })(jQuery); 

or

jQuery(document).ready(function($){
// standard on load code goes here with $ prefix
// note: the $ is setup inside the anonymous function of the ready command
});

请注意,很多时候$(document).ready(function(){//code here});不会起作用。