Javascript JQuery-$未定义

Javascript JQuery-$未定义,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有一个简单的jquery单击事件 <script type="text/javascript"> $(function() { $('#post').click(function() { alert("test"); }); }); </script> $(函数(){ $('#post')。单击(函数(){ 警报(“测试”); }); }); 以及si

我有一个简单的jquery单击事件

<script type="text/javascript">
    $(function() {
        $('#post').click(function() {
            alert("test"); 
        });
    });
</script>

$(函数(){
$('#post')。单击(函数(){
警报(“测试”);
});
});
以及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应用程序,我确信我真的很密集,谷歌上的每个地方都说要检查文件引用是否正确,我已经检查了一遍又一遍,请告知!:/

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

我使用,从来没有问题

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

该错误只能由以下三种原因之一引起:

  • 您的JavaScript文件未正确加载到页面中
  • 你有一个拙劣的jQuery版本。这可能是因为有人编辑了核心文件,或者插件可能覆盖了$variable
  • 在页面完全加载之前以及jQuery完全加载之前,您已经运行了JavaScript
  • 首先,确保正确调用的脚本应该是什么样子的

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    
    这将确保在初始化jQuery后加载代码

    最后要检查的一件事是确保在加载jQuery之前没有加载任何插件。插件扩展了“$”对象,因此如果在加载jQuery核心之前加载插件,那么您将得到所描述的错误


    注意:如果您正在加载不需要jQuery运行的代码,则不需要将其放置在jQuery就绪处理程序中。当我拼写错误jQuery引用时,而不是键入“…javascirpt”。“,则可以使用。

    我得到了相同的错误消息

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

    type="text/javacsript"
    

    因此,他们正在加载,但没有进一步的提示,为什么它不工作。不用说,正确的拼写修复了它。

    可能是在调用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放在脚本标记之前,它就会工作;)像这样:

    
    
    我曾经无缘无故地遇到过这个问题。这是在本地发生的,当时我正在运行aspnet开发服务器。它一直在工作,我把一切都恢复到以前工作过的状态,但仍然不工作。我查看了chrome调试器,jquery-1.7.1.min.js已顺利加载。这一切都很令人困惑。我仍然不知道问题出在哪里,但关闭浏览器,关闭开发服务器,然后重试解决问题。

    我们也有同样的问题……但我无意中检查了文件夹属性并设置了一些内容

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

  • 右键单击文件夹
  • “权限”选项卡
  • 设置文件夹访问权限: 所有者:创建和删除文件 组:访问文件 其他:访问文件

  • 我希望这就是解决方案……

    在解决方案中提到的- 最后要检查的一件事是确保在加载jQuery之前没有加载任何插件。插件扩展了“$”对象,因此,如果在加载jQuery核心之前加载插件,则会出现您描述的错误

    为避免出现这种情况—


    许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery中,$只是jQuery的别名,因此所有功能都可以使用,而不需要使用$。如果我们需要在jQuery旁边使用另一个JavaScript库,我们可以通过调用$.noConflict()将$的控制权返回给另一个库:

    只需将jQuery url放在jQuery代码的顶部即可

    像这样--

    
    $(函数(){
    $('#post')。单击(函数(){
    警报(“测试”);
    });
    });
    
    听起来jQuery没有正确加载。您使用的是哪个源/版本


    或者,这可能是名称空间冲突,因此请尝试显式使用jQuery,而不是使用
    $
    。如果有效,您可能希望使用
    noConflict
    ,以确保使用
    $
    的其他代码不会中断。

    我也遇到了同样的问题,这是因为我对jQuery.js的引用不在标记中。一旦我换了那个,一切都开始工作了


    Anthony

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

    我遇到了一个问题,使用该母版页的任何页面都会返回“$is not defined”,这仅仅是因为在创建jquery对象之前,错误的顺序使客户端代码运行。因此,请确保您有:

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

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

    在我的例子中,我指的是谷歌托管的jQuery。它被正确地包含,但我在一个HTTPS页面上,并通过HTTP调用它。一旦我解决了这个问题(或允许不安全的内容),它就立即启动了。

    在这里尝试了所有方法但没有结果后,我只需将脚本src标记从主体移动到主体就解决了这个问题。

    经过一些测试,我找到了一个快速的解决方案, 您可以在索引页顶部添加:

    <script>
    $=jQuery;
    </script>
    
    
    $=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>
    
    <head runat="server">
        <script type="text/javascript" src="Scripts/jquery-VERSION#.js"></script>
        <asp:ContentPlaceHolder id="Header" runat="server"></asp:ContentPlaceHolder>
    </head>
    
    <script>
    $=jQuery;
    </script>
    
    // 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>
    }
    
    <html>
    <body>
        <!-- ... Rest of your layout file here ... -->
    
        @Scripts.Render("~/bundles/jquery")
        @Scripts.Render("~/bundles/bootstrap")
        @RenderSection("scripts", required: false)
    </body>
    </html>
    
    <script src="jquery.min.js"></script>
    
    (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
    });
    
    window.onload = function() {
      //YOUR JQUERY CODE
    }
    
    $(document).ready(function () {
      //YOUR JQUERY CODE
    });
    
    <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>
    
    <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~!' );
    });
    
    <head>
        @Scripts.Render("~/bundles/jquery")
    </head>
    
    var $j = jQuery.noConflict();
    
    $j( "div" ).hide();
    
    <head>
      <*@ Omitted code*@>
      <script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script>
    </head>
    
      <script language="JavaScript" 
        src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js">
      </script>
    
     <script language="JavaScript"  src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
    
    window.onload = function(){
      // Your code here
    };  
    
    originalOnload = window.onload;
    window.onload = function() {
      if (originalOnload) {
        originalOnload();
      }
      // YOUR JQUERY
    };
    
    document.addEventListener('DOMContentLoaded', () => {
     // code here
    });