如何通过jQuery检查文档是否已准备好(所有js文件已加载,DOM已准备好)? 有旗帜吗?
如果某些文件未完全下载,则会遇到问题,并且该事件由用户引发。我想检查内部事件处理程序。
我正在使用jQuery,asp.net
答案 0 :(得分:26)
这没有记录,我不认为,但如果你看一下$(document).ready
的jQuery代码:
// If the DOM is already ready
if ( jQuery.isReady ) {
// Execute the function immediately
fn.call( document, jQuery );
} // ...
因此,对于可能发生变化的方式,您可以使用$.isReady
或jQuery.isReady
。
更好的方法是使用$(document).ready
排队。 e.g:
function myClickHandler(event) {
// do stuff
$(document).ready(function() {
// Do this immediately if DOM is loaded, or once it's loaded otherwise.
}
}
基本上,这使用ready函数作为保护。您可以使用ready函数代替if语句。当然,就绪函数具有在加载DOM时将运行的行为。如果你的行为只是想要在加载时发生某些事情,但是如果还没有加载它就永远不会这样做,那么使用上面的标志或设置你自己的标志是更好的方法。自己设定:
$(document).ready(function() {
window.domIsReady = true;
}
if (window.domIsReady) {
// do stuff
}
创建自己的可能更好,因为jQuery.isReady
似乎没有记录,因此可能不受支持,并且可能随时更改。
答案 1 :(得分:7)
$(document).ready(function() {
// Handler for .ready() called.
});
答案 2 :(得分:5)
这是一个棘手的问题吗? :)
您正在寻找的是document.ready
示例:
$(document).ready(function() {
alert ("document is ready!");
});
答案 3 :(得分:3)
一个简单的函数调用,看看基数是否被加载。
jQuery(document).ready(function(){
alert("howdy");
});
替代方案,找出它是否已加载(更好)
<script type="text/javascript">
if (typeof jQuery == 'undefined')
{
alert('not loaded');
}
</script>
对于那些短暂的坚果:(不需要任何类型:)
<script type="text/javascript">
if(!this.$)
{
alert('not loaded');
}
</script>
答案 4 :(得分:2)
http://api.jquery.com/ready/ - 示例位于页面底部
答案 5 :(得分:1)
Jquery有这个:
$(document).ready(function(){
alert('document ready here')
});
在$(document).ready()块中包装任何操作DOM的jquery是相当普遍的做法,以确保在继续之前DOM完全存在。
答案 6 :(得分:1)
我认为你的追求是:
$(window).load(function(){
alert("All content has been downloaded to the web browser")
});
我不久前在那里做过blog:
答案 7 :(得分:0)
认为document.ready代码只在文档和所有加载文件时触发。从来没有遇到过这个问题。
如果我遇到问题,我会在所有需要的文件中放置一个var并检查它们是否相加,将所有代码放在一个文件中。
请原谅我没有发表明确答案
答案 8 :(得分:0)
您是否正在寻找本地window.onload
事件?当页面上的所有内容(包括脚本,图像,样式表)都已加载时,它就会被触发。
function doStuff() {
alert("The DOM and everything inside have loaded");
}
window.onload = doStuff;
另请参阅:addLoadEvent。
答案 9 :(得分:0)
从jquery 1.8.x .ready() api page开始,似乎使用以下语法绑定事件处理函数可以解决问题:
$(document).ready(handler);
即使'ready'事件已被触发,也会调用'handle'函数。