Added in handling for DOMContentLoaded for Mozilla and window.onload, just in case.

1.7/enhancement_8685
John Resig 2006-04-08 06:28:40 +00:00
parent e3828d1a48
commit fc26b57ace
1 changed files with 25 additions and 15 deletions

View File

@ -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();
};
};