diff options
Diffstat (limited to 'js/vendor/jquery/src/core/ready.js')
-rw-r--r-- | js/vendor/jquery/src/core/ready.js | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/js/vendor/jquery/src/core/ready.js b/js/vendor/jquery/src/core/ready.js index db1a6e60a..7d93e6768 100644 --- a/js/vendor/jquery/src/core/ready.js +++ b/js/vendor/jquery/src/core/ready.js @@ -1,20 +1,23 @@ -define([ +define( [ "../core", + "../var/document", "../core/init", "../deferred" -], function( jQuery ) { +], function( jQuery, document ) { // The deferred used on DOM ready var readyList; jQuery.fn.ready = function( fn ) { + // Add the callback jQuery.ready.promise().done( fn ); return this; }; -jQuery.extend({ +jQuery.extend( { + // Is the DOM ready to be used? Set to true once it occurs. isReady: false, @@ -56,14 +59,14 @@ jQuery.extend({ jQuery( document ).off( "ready" ); } } -}); +} ); /** * The ready event handler and self cleanup method */ function completed() { - document.removeEventListener( "DOMContentLoaded", completed, false ); - window.removeEventListener( "load", completed, false ); + document.removeEventListener( "DOMContentLoaded", completed ); + window.removeEventListener( "load", completed ); jQuery.ready(); } @@ -72,20 +75,23 @@ jQuery.ready.promise = function( obj ) { readyList = jQuery.Deferred(); - // Catch cases where $(document).ready() is called after the browser event has already occurred. - // We once tried to use readyState "interactive" here, but it caused issues like the one - // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 - if ( document.readyState === "complete" ) { + // Catch cases where $(document).ready() is called + // after the browser event has already occurred. + // Support: IE9-10 only + // Older IE sometimes signals "interactive" too soon + if ( document.readyState === "complete" || + ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready - setTimeout( jQuery.ready ); + window.setTimeout( jQuery.ready ); } else { // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed, false ); + document.addEventListener( "DOMContentLoaded", completed ); // A fallback to window.onload, that will always work - window.addEventListener( "load", completed, false ); + window.addEventListener( "load", completed ); } } return readyList.promise( obj ); @@ -94,4 +100,4 @@ jQuery.ready.promise = function( obj ) { // Kick off the DOM ready check even if the user does not jQuery.ready.promise(); -}); +} ); |