日期:2014-05-16  浏览次数:20371 次

请问一个jQuery源码里的一个问题
completed = function( event ) {

          // readyState === "complete" is good enough for us to call the dom ready in oldIE
          if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) {
               detach();
               jQuery.ready();
          }
     },

请问这个函数是递归么?他代表的什么意思啊?看不懂
javascript jquery

------解决方案--------------------
不是,
你要知道,在什么情况下执行completed。

看jQuery.ready.promise
绑了
document.addEventListener( "DOMContentLoaded", completed, false );

// A fallback to window.onload, that will always work
window.addEventListener( "load", completed, false );










completed = function( event ) {

// readyState === "complete" is good enough for us to call the dom ready in oldIE
if ( document.addEventListener 
------解决方案--------------------
 event.type === "load" 
------解决方案--------------------
 document.readyState === "complete" ) {
detach();
jQuery.ready();
}
},
// Clean-up method for dom ready events
detach = function() {
if ( document.addEventListener ) {
document.removeEventListener( "DOMContentLoaded", completed, false );
window.removeEventListener( "load", completed, false );

} else {
document.detachEvent( "onreadystatechange", completed );
window.detachEvent( "onload", completed );
}
};