git.asbjorn.biz
/
jquery.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5b92cdd
)
Allow plugins to delay the exeuction of the ready event. Delay the ready event by...
author
John Resig
<jeresig@gmail.com>
Mon, 20 Sep 2010 18:53:29 +0000
(14:53 -0400)
committer
John Resig
<jeresig@gmail.com>
Mon, 20 Sep 2010 18:53:29 +0000
(14:53 -0400)
src/core.js
patch
|
blob
|
history
diff --git
a/src/core.js
b/src/core.js
index
0fec6e1
..
2b00627
100644
(file)
--- a/
src/core.js
+++ b/
src/core.js
@@
-360,11
+360,20
@@
jQuery.extend({
// Is the DOM ready to be used? Set to true once it occurs.
isReady: false,
// 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,
// Handle when the DOM is ready
// Handle when the DOM is ready
- ready: function() {
+ ready: function( wait ) {
+ // A third-party is pushing the ready event forwards
+ if ( wait === true ) {
+ jQuery.readyWait--;
+ }
+
// Make sure that the DOM is not already loaded
// Make sure that the DOM is not already loaded
- if ( !jQuery.isReady ) {
+ if ( !jQuery.readyWait && !jQuery.isReady ) {
// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
if ( !document.body ) {
return setTimeout( jQuery.ready, 13 );
// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
if ( !document.body ) {
return setTimeout( jQuery.ready, 13 );
@@
-373,6
+382,11
@@
jQuery.extend({
// Remember that the DOM is ready
jQuery.isReady = true;
// 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
if ( readyList ) {
// Execute all of them
// If there are functions bound, to execute
if ( readyList ) {
// Execute all of them