X-Git-Url: http://git.asbjorn.it/?p=jquery.git;a=blobdiff_plain;f=src%2Fevent.js;h=2d53562ad99a09331ba62f38465ace89e645dbb3;hp=7fa5488ee3e37efc052138b4e024eded80eaf5ca;hb=328a86f9a0d3f0907cc950f7543e34cb3efbda3f;hpb=8e59a99e0ade75dec434f246f52e8b3f7393f359 diff --git a/src/event.js b/src/event.js index 7fa5488..2d53562 100644 --- a/src/event.js +++ b/src/event.js @@ -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 ); } }); }