Javascript JQuery-$未定义
我有一个简单的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
<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>
该错误只能由以下三种原因之一引起:
<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
});