Revert "Make sure that focusin/focusout bubbles in non-IE browsers." This was causing...
[jquery.git] / src / event.js
index 7fa5488..2d53562 100644 (file)
@@ -8,7 +8,6 @@ var rnamespaces = /\.(.*)$/,
        fcleanup = function( nm ) {
                return nm.replace(rescape, "\\$&");
        },
-       focusCounts = { focusin: 0, focusout: 0 },
        eventKey = "events";
 
 /*
@@ -607,7 +606,7 @@ jQuery.Event = function( src ) {
 
                // Events bubbling up the document may have been marked as prevented
                // by a handler lower down the tree; reflect the correct value.
-               this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
+               this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || 
                        src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
 
        // Event type
@@ -880,21 +879,17 @@ if ( document.addEventListener ) {
        jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
                jQuery.event.special[ fix ] = {
                        setup: function() {
-                               if ( focusCounts[fix]++ === 0 ) {
-                                       document.addEventListener( orig, handler, true );
-                               }
-                       },
-                       teardown: function() {
-                               if ( --focusCounts[fix] === 0 ) {
-                                       document.removeEventListener( orig, handler, true );
-                               }
+                               this.addEventListener( orig, handler, true );
+                       }, 
+                       teardown: function() { 
+                               this.removeEventListener( orig, handler, true );
                        }
                };
 
                function handler( e ) {
                        e = jQuery.event.fix( e );
                        e.type = fix;
-                       return jQuery.event.trigger( e, null, e.target );
+                       return jQuery.event.handle.call( this, e );
                }
        });
 }