多个$(document).ready()的执行顺序

Web 十五楼的鸟儿 373浏览 1评论

最近做插件遇到的问题,记录如下:

本文以实例形式说明了多个$(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()的执行顺序

游客
发表我的评论 换个身份
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 访客
    路过
    沉冰浮水 游客 1年前 (2015-10-10)回复