JQuery – $没有定义

我有一个简单的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> 

我已经检查脚本正确parsing,我能够看到标记,并直接在萤火虫查看脚本,所以我必须被发现。 不过,我仍然得到:

$未定义

而不是jQuery的作品。 我也试过了像$(document).ready和jQuery等的各种变体。

这是一个在.net 3.5上的MVC 2应用程序,我敢肯定,我真的很密集,在谷歌上的任何地方说检查文件是否正确引用,我已经检查和再次检查,请指教! :/

这个错误只能由三件事情之一引起:

  1. 您的JavaScript文件未正确加载到您的网页中
  2. 你有一个僵化的版本的jQuery。 这可能是因为某人编辑了核心文件,或者一个插件可能覆盖了$variables。
  3. 在页面被完全加载之前,你已经运行了JavaScript,因此,在jQuery完全加载之前。

你应该检查Firebug networking面板,看看文件是否确实正确加载。 如果不是,则会以红色突出显示,旁边会显示“404”。 如果文件正确加载,这意味着问题是数字2。

确保所有的jQuery的JavaScript代码正在代码块内运行,如:

 $(document).ready(function () { //your code here }); 

这将确保你的代码 jQuery被初始化之后被加载。

最后要检查的是确保加载jQuery 之前不加载任何插件。 插件扩展了“$”对象,所以如果你在加载jQuery核心之前加载一个插件,那么你会得到你所描述的错误。

注意:如果你正在加载的代码不需要jQuery来运行它不需要被放置在jQuery就绪处理程序。 该代码可以使用document.readyState分隔。

可能是因为在调用jquery脚本之前调用了脚本标记。

 <script type="text/javascript" src="js/script.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> 

这是因为$没有被定义

把jquery.js放在你的脚本标签之前,它就会工作;)如下所示:

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript" src="js/script.js"></script> 

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

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

这可能是在HEAD或在页面的页脚,只要确保你加载它,然后再尝试调用其他任何jQuery的东西。

那么你需要使用以下两种解决scheme之一

 (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); 

要么

 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}); 将无法正常工作,尤其是在wordpress中。

如果jQuery插件调用位于</body>旁边,并且在此之前加载了脚本,则应该在window.onload事件之后运行代码,如下所示:

 window.onload = function() { //YOUR JQUERY CODE } 

`

所以,你的代码只能在窗口加载之后运行,当所有的资源被加载。 在这一点上,jQuery( $ )将被定义。

如果你使用这个:

 $(document).ready(function () { //YOUR JQUERY CODE }); 

`

$目前还没有定义,因为它在jQuery被加载之前被调用,并且你的脚本将在控制台的第一行失败。

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

 type="text/javascript" 

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

在视图和主布局中使用脚本部分

将您的视图中定义的所有脚本放在视图的“脚本”部分中。 通过这种方式,您可以在加载所有其他脚本后加载主布局。 这是启动一个新的MVC5 web项目时的默认设置。 不确定早期版本。

查看/美孚/ MyView.cshtml:

 // The rest of your view code above here. @section Scripts { // Either render the bundle defined with same name in BundleConfig.cs... @Scripts.Render("~/bundles/myCustomBundle") // ...or hard code the HTML. <script src="URL-TO-CUSTOM-JS-FILE"></script> <script type="text/javascript"> $(document).ready(function () { // Do your custom javascript for this view here. Will be run after // loading all the other scripts. }); </script> } 

查看/共享/ _Layout.cshtml

 <html> <body> <!-- ... Rest of your layout file here ... --> @Scripts.Render("~/bundles/jquery") @Scripts.Render("~/bundles/bootstrap") @RenderSection("scripts", required: false) </body> </html> 

注意脚本部分是如何在主布局文件中最后呈现的。

你使用其他的JavaScript库吗? 如果是这样,你可能需要在兼容模式下使用jQuery:

http://docs.jquery.com/Using_jQuery_with_Other_Libraries

确保你真的加载jQuery这不是 jQuery的 – 这是用户界面!

  <script language="JavaScript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js"> </script> 

这是一个正确的jQuery脚本源代码:

  <script language="JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 

如上所述,这是由于$variables的冲突而发生的。

我解决了这个问题,为jQuery保留了一个没有冲突的二级variables。

 var $j = jQuery.noConflict(); 

然后在任何地方使用它

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

更多细节可以在这里find

当我拼写错误的jQuery引用,而不是type="text/javascript"时,我得到了相同的错误信息我input“… javascirpt”。 ;)

这听起来像jQuery没有正确加载。 你使用哪个来源/版本?

或者,它可能是名称空间冲突,所以请尝试显式使用jQuery,而不是使用$ 。 如果这样做,你可能会喜欢使用noConflict来确保使用$的其他代码不会中断。

经过一些testing后,我发现一个快速的解决scheme,你可以添加到您的索引页的顶部:

 <script> $=jQuery; </script> 

它工作得很好:)

我使用Url.Content并从来没有问题。

 <script src="<%= Url.Content ("~/Scripts/jquery-1.4.1.min.js") %>" type="text/javascript"></script> 

在解决scheme中提到 – “最后要检查的是确保在加载jQuery之前不要加载任何插件。插件扩展”$“对象,所以如果你在加载jQuery核心之前加载插件,那么你会得到你所描述的错误。“

为了避免这一点 –

许多JavaScript库使用$作为函数或variables名称,就像jQuery一样。 在jQuery的情况下,$是jQuery的别名,所以所有的function都可以不使用$。 如果我们需要和jQuery一起使用另一个JavaScript库,我们可以通过调用$ .noConflict()来将控制权返还给其他库。

我有同样的问题,这是因为我对jQuery.js的引用不在标签中。 一旦我切换,一切都开始工作。

安东尼

这意味着你的jQuery库尚未加载。

拉动jQuery库后,你可以移动你的代码。

或者你可以使用这样的东西

 window.onload = function(){ // Your code here }; 

我没有明显的原因曾经遇到过这个问题。 这是发生在本地,而我通过aspnet开发服务器运行。 它一直在工作,我把所有事情都恢复到以前一直在工作的状态,但仍然不起作用。 我看着铬debugging器和jquery-1.7.1.min.js加载没有任何问题。 这一切都很混乱。 我仍然不知道是什么问题,但closures浏览器,closures开发服务器,然后再尝试整理出来。

只需将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> 

原来我的问题是一个相当愚蠢的 – 我已经把<script href="">而不是<script src="">

我们有同样的问题….但不小心,我检查文件夹属性和设置的东西…

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

  1. 右键点击文件夹
  2. '权限'选项卡
  3. 设置文件夹访问权限:OWNER:创build和删除文件GROUP:访问文件OTHERS:访问文件

我希望这是解决scheme……

在asp.net中使用jQuery时,如果您使用的是母版页,并且您正在加载jquery源文件,请确保在所有jquery脚本引用之后都有头文件contentplaceholder。

我有一个问题,使用该母版页的任何页面将返回“$未定义”,只是因为不正确的顺序是在创buildjquery对象之前运行客户端代码。 所以确保你有:

 <head runat="server"> <script type="text/javascript" src="Scripts/jquery-VERSION#.js"></script> <asp:ContentPlaceHolder id="Header" runat="server"></asp:ContentPlaceHolder> </head> 

这样代码将按顺序运行,您将能够在子页面上运行jQuery代码。

就我而言,我指的是Google托pipe的JQuery。 它包含正确,但我在一个HTTPS页面,并通过HTTP调用它。 一旦我解决了问题(或允许不安全的内容),它就直接开了火。

在没有任何结果的情况下尝试了一切之后,我简单地通过将脚本src标签从身体移动到头部来解决问题

你只是把jQuery库的HTML头部分:)

 <head> <script src="assets/js/jquery-1.10.2.min.js"></script> <script src="assets/js/bootstrap.min.js"></script> </head> 

我有这个相同的问题,不知道是什么原因造成的。 我最近把我的HTML文件从日文转换成UTF-8,但是我没有对脚本文件做任何事情。 不知何故jquery-1.10.2.min.js在这个过程中被破坏(我还不知道如何)。 replacejquery-1.10.2.min.js与原来的固定它。

看来,如果你find你的jquery.js文件在相同的文件夹下,或者在你的html文件所在的子文件夹下,Firebug问题就解决了。 例如,如果你的html在C:/ folder1 /下,那么你的js文件应该位于C:/ folder1 /(或者C:/ folder1 / folder2等)下,并且在html文档中相应地加以说明。 希望这可以帮助。

这工作对我来说(MVC5项目):

 <script src="~/Scripts/jquery-1.10.2.js" type="text/javascript"></script> 

你只需在你的页面开始添加

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script> 

并检查您的src链接在任何浏览器的地址栏,如果你正在得到一些代码,那么这将为你工作。 阿西夫

我有同样的问题,没有任何情况下解决我的问题。 唯一对我有用的东西,放在Site.master文件中,下一个:

 <script src="<%= ResolveUrl("~/Scripts/jquery-1.7.1.min.js") %>" type="text/javascript"></script> <script src="<%= ResolveUrl("~/Scripts/bootstrap/js/bootstrap.min.js") %>" type="text/javascript"></script> 

使用src =“<%= ResolveUrl(”“)… jQuery在内容页面中的加载是正确的。

  1. 检查包含您的jquery文件的确切path。

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

如果你在页面底部添加这个,请在​​这个声明下面调用JS函数。

  1. 使用这个代码testing检查,

     <script type="text/javascript"> /*** * Created by dadenew * Submit email subscription using ajax * Send email address * Send controller * Recive response */ $(document).ready(function() { //you can replace $ with Jquery alert( 'jquery working~!' ); }); 

和平!