Created
July 26, 2012 15:32
-
-
Save kswlee/3182736 to your computer and use it in GitHub Desktop.
jQuery ready and bindReady
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ready: function( fn ) { | |
| // Attach the listeners | |
| jQuery.bindReady(); | |
| // Add the callback | |
| readyList.add( fn ); | |
| return this; | |
| } | |
| bindReady: function() { | |
| if ( readyList ) { | |
| return; | |
| } | |
| readyList = jQuery.Callbacks( "once memory" ); | |
| // Catch cases where $(document).ready() is called after the | |
| // browser event has already occurred. | |
| if ( document.readyState === "complete" ) { | |
| // Handle it asynchronously to allow scripts the opportunity to delay ready | |
| return setTimeout( jQuery.ready, 1 ); | |
| } | |
| // Mozilla, Opera and webkit nightlies currently support this event | |
| if ( document.addEventListener ) { | |
| // Use the handy event callback | |
| document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false ); | |
| // A fallback to window.onload, that will always work | |
| window.addEventListener( "load", jQuery.ready, false ); | |
| // If IE event model is used | |
| } else if ( document.attachEvent ) { | |
| // ensure firing before onload, | |
| // maybe late but safe also for iframes | |
| document.attachEvent( "onreadystatechange", DOMContentLoaded ); | |
| // A fallback to window.onload, that will always work | |
| window.attachEvent( "onload", jQuery.ready ); | |
| // If IE and not a frame | |
| // continually check to see if the document is ready | |
| var toplevel = false; | |
| try { | |
| toplevel = window.frameElement == null; | |
| } catch(e) {} | |
| if ( document.documentElement.doScroll && toplevel ) { | |
| doScrollCheck(); | |
| } | |
| } | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment