diff options
author | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-03-14 10:22:09 +0100 |
---|---|---|
committer | Bernhard Posselt <dev@bernhard-posselt.com> | 2014-03-26 01:34:31 +0100 |
commit | 2fc5ca4f601174a7ecb7c77a7059f5fac2ab4611 (patch) | |
tree | aa7ab66e29fc7de98533d1e55832ca4fbcd39611 /js/vendor/jquery/src/core/ready.js | |
parent | 22fc777ce7403d706649cf83bb23010dfd7dea04 (diff) |
update a lot of stuff, WIP
Diffstat (limited to 'js/vendor/jquery/src/core/ready.js')
-rw-r--r-- | js/vendor/jquery/src/core/ready.js | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/js/vendor/jquery/src/core/ready.js b/js/vendor/jquery/src/core/ready.js new file mode 100644 index 000000000..e64977cd9 --- /dev/null +++ b/js/vendor/jquery/src/core/ready.js @@ -0,0 +1,96 @@ +define([ + "../core", + "../core/init", + "../deferred" +], function( jQuery ) { + +// 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({ + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + } +}); + +/** + * The ready event handler and self cleanup method + */ +function completed() { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + jQuery.ready(); +} + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + 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" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + } else { + + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + } + } + return readyList.promise( obj ); +}; + +// Kick off the DOM ready check even if the user does not +jQuery.ready.promise(); + +}); |