Pau*_*sey 462 javascript asp.net-mvc jquery
我有一个简单的jquery点击事件
<script type="text/javascript">
$(function() {
$('#post').click(function() {
alert("test");
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
以及site.master中定义的jquery引用
<script src="<%=ResolveUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
我已经检查过脚本是否正确解析,我能够看到标记并直接在firebug中查看脚本,所以我必须被找到.但是,我仍然得到:
$未定义
并没有jquery工作.我也尝试了各种各样的变体,如$(document).ready和jQuery等.
它是.net 3.5上的一个MVC 2应用程序,我确定我真的很密集,google上的每个地方都说要检查文件是否正确引用,我已经检查并再次检查,请指教!:/
Mik*_*cic 531
该错误只能由以下三种情况之一引起:
您应该检查Firebug 网络面板以查看文件是否实际正确加载.如果没有,它将突出显示为红色并在其旁边显示"404".如果文件正确加载,则表示问题为2.
确保所有jQuery javascript代码都在代码块中运行,例如:
$(document).ready(function () {
//your code here
});
Run Code Online (Sandbox Code Playgroud)
这将确保在初始化jQuery 之后加载代码.
最后要检查的是确保在加载jQuery 之前没有加载任何插件.插件扩展了"$"对象,所以如果你在加载jQuery核心之前加载一个插件,那么你将得到你描述的错误.
注意:如果您正在加载不需要运行jQuery的代码,则不需要将其放在jQuery ready处理程序中.该代码可以使用分开document.readyState
.
小智 196
可能是在调用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>
Run Code Online (Sandbox Code Playgroud)
结果是$未定义
将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>
Run Code Online (Sandbox Code Playgroud)
And*_*len 62
首先,您需要确保加载jQuery脚本.这可能来自您的网站上的CDN或本地.如果在尝试使用jQuery之前没有先加载它,它会告诉你jQuery没有定义.
<script src="jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
这可以在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);
Run Code Online (Sandbox Code Playgroud)
要么
jQuery(document).ready(function($){
// standard on load code goes here with $ prefix
// note: the $ is setup inside the anonymous function of the ready command
});
Run Code Online (Sandbox Code Playgroud)
请注意多次$(document).ready(function(){// code here}); 不管用.
小智 43
如果jQuery插件调用位于其旁边</body>
,并且您的脚本在此之前加载,则应该在window.onload
事件之后运行代码,如下所示:
window.onload = function() {
//YOUR JQUERY CODE
}
Run Code Online (Sandbox Code Playgroud)
`
因此,只有在窗口加载后,当所有资产都已加载时,您的代码才会运行.在这一点上,$
将定义jQuery().
如果你使用它:
$(document).ready(function () {
//YOUR JQUERY CODE
});
Run Code Online (Sandbox Code Playgroud)
`
在$
还没有在这个时候确定的,因为jQuery是加载之前它被称为,你的脚本将失败上的控制台,第一道防线.
Geo*_*e R 27
我做了同样的事情,发现我有很多
type="text/javacsript"
Run Code Online (Sandbox Code Playgroud)
所以他们正在加载,但没有进一步暗示为什么它不起作用.毋庸置疑,正确的拼写修正了它.
ang*_*sen 21
在视图和主布局中使用脚本部分.
将视图中定义的所有脚本放在视图的"脚本"部分中.这样,您可以在加载所有其他脚本后加载主布局.这是启动新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>
}
Run Code Online (Sandbox Code Playgroud)
查看/共享/ _Layout.cshtml
<html>
<body>
<!-- ... Rest of your layout file here ... -->
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
请注意脚本部分如何在主布局文件中最后呈现.
Wol*_*ahl 11
确保你真的加载jquery这不是 jquery - 这是ui!
<script language="JavaScript"
src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js">
</script>
Run Code Online (Sandbox Code Playgroud)
这是jquery的正确脚本源:
<script language="JavaScript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
如上所述,它发生的原因是$ variable的冲突.
我通过为jQuery保留一个没有冲突的辅助变量来解决这个问题.
var $j = jQuery.noConflict();
Run Code Online (Sandbox Code Playgroud)
然后在任何地方使用它
$j( "div" ).hide();
Run Code Online (Sandbox Code Playgroud)
更多细节可以在这里找到
这意味着您的jQuery库尚未加载.
您可以在拉动jQuery库后移动代码.
或者你可以使用这样的东西
window.onload = function(){
// Your code here
};
Run Code Online (Sandbox Code Playgroud)
您使用的是其他任何JavaScript库吗?如果是这样,您可能需要在兼容模式下使用jQuery:
http://docs.jquery.com/Using_jQuery_with_Other_Libraries
经过一些测试,我找到了一个快速解决方案,您可以在索引页面顶部添加:
<script>
$=jQuery;
</script>
Run Code Online (Sandbox Code Playgroud)
它工作得很好:)
小智 5
我遇到了同样的问题并通过使用解决了它
document.addEventListener('DOMContentLoaded', () => {
// code here
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1472957 次 |
最近记录: |