jQuery的就绪队列$(foo)和$(bar)将按顺序运行还是并行运行?

nop*_*ole 1 jquery document-ready domready

如果使用jQuery有2或3或20个语句

$(function() { ... })
Run Code Online (Sandbox Code Playgroud)

要添加要在DOM准备好时执行的函数,所有这些函数是并行运行还是按顺序运行?

Nic*_*ver 5

document.ready在这方面表现得像一个普通事件,它们按顺序发生,并按照它们被绑定的顺序发生.您可以在此处查看相关的jQuery核心源:

当你这样做时会发生这种情况$(function):

ready: function( fn ) {
    jQuery.bindReady();
    if ( jQuery.isReady ) {
        fn.call( document, jQuery );
    } else if ( readyList ) {
        readyList.push( fn );
    }
    return this;
}
Run Code Online (Sandbox Code Playgroud)

这发生在以后,当"就绪"事件触发时:

if ( readyList ) {
    var fn, i = 0;
    while ( (fn = readyList[ i++ ]) ) {
        fn.call( document, jQuery );
    }
    readyList = null;
}
Run Code Online (Sandbox Code Playgroud)

如果文档已经准备好,则该函数立即执行,这是if上面第一个代码块中的部分.