猿问

JQuery - $未定义

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>

我已经检查过脚本是否正确解析,我能够看到标记并直接在firebug中查看脚本,所以我必须被找到。但是,我仍然得到:

$未定义

并没有jquery工作。我也尝试了各种各样的变体,如$(document).ready和jQuery等。

它是.net 3.5上的一个MVC 2应用程序,我确定我真的很密集,google上的每个地方都说要检查文件是否正确引用,我已经检查并再次检查,请指教!:/


慕的地8271018
浏览 1604回答 4
4回答

茅侃侃

该错误只能由以下三种情况之一引起:您的JavaScript文件未正确加载到您的页面中你有一个拙劣的jQuery版本。这可能是因为有人编辑了核心文件,或者插件可能覆盖了$变量。您在页面完全加载之前运行JavaScript,因此,在jQuery完全加载之前。您应该检查Firebug&nbsp;网络面板以查看文件是否实际正确加载。如果没有,它将突出显示为红色并在其旁边显示“404”。如果文件正确加载,则表示问题为2。确保所有jQuery javascript代码都在代码块中运行,例如:$(document).ready(function&nbsp;()&nbsp;{ &nbsp;&nbsp;//your&nbsp;code&nbsp;here});这将确保在初始化jQuery&nbsp;之后加载代码。最后要检查的是确保在加载jQuery&nbsp;之前没有加载任何插件。插件扩展了“$”对象,所以如果你在加载jQuery核心之前加载一个插件,那么你将得到你描述的错误。注意:如果您正在加载不需要运行jQuery的代码,则不需要将其放在jQuery ready处理程序中。该代码可以使用分开document.readyState。

繁星点点滴滴

首先,您需要确保加载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,&nbsp;// or outside the document ready, enter code here&nbsp;})(jQuery);&nbsp;要么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}); 不管用。

幕布斯6054654

如果jQuery插件调用位于其旁边</body>,并且您的脚本在此之前加载,则应该在window.onload事件之后运行代码,如下所示:window.onload = function() {&nbsp; //YOUR JQUERY CODE}`因此,只有在窗口加载后,当所有资产都已加载时,您的代码才会运行。在这一点上,$将定义jQuery()。如果你使用它:$(document).ready(function () {&nbsp; //YOUR JQUERY CODE});`在$还没有在这个时候确定的,因为jQuery是加载之前它被称为,你的脚本将失败上的控制台,第一道防线。
随时随地看视频慕课网APP
我要回答