最近做插件遇到的问题,记录如下:
本文以实例形式说明了多个$(document).ready()的执行顺序问题,由实例可以看出多个$(document).ready()的执行顺序并非单纯的顺序执行,其与嵌套层级也有一定的关系。具体实例代码如下:
<html> <head> <script src="./jquery-1.9.0.min.js"></script> <script type="text/javascript"> $(function(){ alert('1'); $(function(){ alert('2'); $(function(){ alert('3'); }); }); }); </script> <body> TTTTTTTTTTTT <script type="text/javascript"> $(document).ready(function() { alert('4'); $(function(){ alert('5'); }); }); </script> KKKKKKKKKKKK <script type="text/javascript"> $(function(){ alert('6'); $(document).ready(function() { alert('7'); }); }); </script> </body> </html>
运行alert显示顺序为:1,4,6,2,5,7,3
读者可以自己测试体验一下,以加深对多个$(document).ready()执行顺序的理解。
有兴趣还可以在控制台里试试这堆:
var 队列 = [];
function 队列添加(函数) {
队列.push(函数);
}
function 执行队列() {
while (函数 = 队列.shift()) {
函数();
}
}
队列添加(function () {
console.log('1');
队列添加(function () {
console.log('2');
队列添加(function () {
console.log('3');
});
});
});
队列添加(function () {
console.log('4');
队列添加(function () {
console.log('5');
});
});
队列添加(function () {
console.log('6');
队列添加(function () {
console.log('7');
});
});
执行队列();
转载请注明:鸟儿博客 » 多个$(document).ready()的执行顺序