在同一页面上多次调用$(document).ready

时间:2012-05-17 10:18:48

标签: javascript jquery ruby-on-rails document-ready

  

可能重复:
  Can you have multiple $(document).ready(function() sections?

在同一页面上多次调用 $(document).ready 是否可以?如果是这样,如何解决运行代码的顺序,这是否有任何影响

我在我的rails应用程序中使用jQuery。我在应用程序中使用了几个级别的javascript,所有这些都使用jQuery。

例如,我有一些默认代码可以淡化我的application.js中的Flash Notices 我有一个包含在所有项目模型视图中的projects.js文件,我有一个project / edit.js,它只包含在编辑操作呈现的视图中。

在我使用的所有三个js文件中:

$(document).ready
{
   //Do something
}

3 个答案:

答案 0 :(得分:6)

没关系。

执行顺序与使用顺序相同。

先进先出

jQuery有一个名为readyList的内部队列,存储ready事件的所有回调。使用回调调用ready函数时,只需将其添加到队列中,并在DOM准备就绪时触发整个队列。

查看jQuery源代码可以很容易地告诉你:

源代码:

// The deferred used on DOM ready
readyList,
...
...

ready: function( fn ) {
    ...
    // Add the callback
    readyList.add( fn );

    return this;
}

答案 1 :(得分:1)

他们运行the same order they were attached,这样做很好。但是,您可以执行a shorter equivalent来减少函数调用,因为$(document).ready()本身就是2个函数调用

$(function(){
    //document is ready
});

答案 2 :(得分:0)

调用jQuery中的$(document).ready按照定义的顺序执行。 更多信息在这里 http://docs.jquery.com/Tutorials:Multiple_$(document).ready()