jQuery is now JSLint (jslint.com) compatible, save for the eval stuff. Can't there b
[jquery.git] / event / event.js
index e11a2c0..dff2e2e 100644 (file)
@@ -2,6 +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];
@@ -9,7 +10,7 @@ for ( var i = 0; i < e.length; i++ ) {
                $.fn["un"+o] = function(f){ return this.unbind(o, f); };
                $.fn["do"+o] = function(){ return this.trigger(o); };
                $.fn["one"+o] = function(f){ return this.bind(o, function(e){
-                       if ( this[o+f] != null ) return true;
+                       if ( this[o+f] !== null ) { return true; }
                        this[o+f]++;
                        return $.apply(this,f,[e]);
                }); };
@@ -24,15 +25,15 @@ $.fn.hover = function(f,g) {
        return this.each(function(){
                var obj = this;
                addEvent(this, "mouseover", function(e) {
-                       var p = ( e.fromElement != null ? e.fromElement : e.relatedTarget );
-                       while ( p && p != obj ) p = p.parentNode;
-                       if ( p == obj ) return false;
+                       var p = ( e.fromElement !== null ? e.fromElement : e.relatedTarget );
+                       while ( p && p != obj ) { p = p.parentNode; }
+                       if ( p == obj ) { return false; }
                        return $.apply(obj,f,[e]);
                });
                addEvent(this, "mouseout", function(e) {
-                       var p = ( e.toElement != null ? e.toElement : e.relatedTarget );
-                       while ( p && p != obj ) p = p.parentNode;
-                       if ( p == obj ) return false;
+                       var p = ( e.toElement !== null ? e.toElement : e.relatedTarget );
+                       while ( p && p != obj ) { p = p.parentNode; }
+                       if ( p == obj ) { return false; }
                        return $.apply(obj,g,[e]);
                });
        });
@@ -41,22 +42,35 @@ $.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;
+                       var o = this;
+                       $.$$ready = [ f ];
+                       $.$$timer = setInterval( function(){
+                               if ( o && o.getElementsByTagName && o.getElementById && o.body ) {
+                                       $.ready();
                                }
-                       }, 13 );
+                       }, 10 );
                }
        });
 };