From fc26b57ace2f995cd4f99b014c8a5718815877e3 Mon Sep 17 00:00:00 2001 From: John Resig Date: Sat, 8 Apr 2006 06:28:40 +0000 Subject: [PATCH] Added in handling for DOMContentLoaded for Mozilla and window.onload, just in case. --- event/event.js | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/event/event.js b/event/event.js index ebb78973f..05247bcf0 100644 --- a/event/event.js +++ b/event/event.js @@ -2,7 +2,7 @@ var e = ["blur","focus","contextmenu","load","resize","scroll","unload", "click","dblclick","mousedown","mouseup","mouseenter","mouseleave", "mousemove","mouseover","mouseout","change","reset","select","submit", "keydown","keypress","keyup","abort","error","ready"]; - + for ( var i = 0; i < e.length; i++ ) { (function(){ var o = e[i]; @@ -42,22 +42,32 @@ $.fn.hover = function(f,g) { // Deprecated $.fn.onhover = $.fn.hover; +$.ready = function() { + if ( $.$$timer ) { + clearInterval( $.$$timer ); + $.$$timer = null; + for ( var i = 0; i < $.$$ready.length; i++ ) + $.apply( document, $.$$ready[i] ); + $.$$ready = null; + } +}; + +if ( document.addEventListener ) + document.addEventListener( "DOMContentLoaded", $.ready, null ); + +addEvent( window, "load", $.ready ); + $.fn.ready = function(f) { return this.each(function(){ - if ( this.$$timer ) { - this.$$ready.push( f ); + if ( $.$$timer ) { + $.$$ready.push( f ); } else { - var obj = this; - this.$$ready = [ f ]; - this.$$timer = setInterval( function(){ - if ( obj && obj.getElementsByTagName && obj.getElementById && obj.body ) { - clearInterval( obj.$$timer ); - obj.$$timer = null; - for ( var i = 0; i < obj.$$ready.length; i++ ) - $.apply( obj, obj.$$ready[i] ); - obj.$$ready = null; - } - }, 13 ); + var o = this; + $.$$ready = [ f ]; + $.$$timer = setInterval( function(){ + if ( o && o.getElementsByTagName && o.getElementById && o.body ) + $.ready(); + }, 10 ); } }); }; @@ -71,4 +81,4 @@ $.fn.toggle = function(a,b) { e.preventDefault(); return $.apply( this, this.$$last, [e] ) || false; }) : this._toggle(); -}; +}; \ No newline at end of file