A-A+
jquery中多个$(document).ready()的执行顺序
jquery中多个$(document).ready()的执行顺序问题我相信大家肯定都是认为从文章的开始到结束从上到下执行了,那么是不是这样的呢,我们一起来看看。
最近做插件遇到的问题,记录如下,本文以实例形式说明了多个$(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');
- });
- });
执行队列();