X-Git-Url: http://git.asbjorn.biz/?p=jquery.git;a=blobdiff_plain;f=src%2Fevent.js;h=380d3d49e38d9d069b6cc2d7a8daae19bddacb64;hp=9d77314b59af37671b7efa59f84351e3c108d1dc;hb=bca82254137a161094377b2d8189c2d9d5906a0f;hpb=f3474c00cd6d9e5fd61b6ef1562003e9986ad67d diff --git a/src/event.js b/src/event.js index 9d77314..380d3d4 100644 --- a/src/event.js +++ b/src/event.js @@ -518,9 +518,10 @@ var withinElement = function( event ) { } }; +// Create mouseenter and mouseleave events jQuery.each({ - mouseover: 'mouseenter', - mouseout: 'mouseleave' + mouseover: "mouseenter", + mouseout: "mouseleave" }, function( orig, fix ) { jQuery.event.special[ fix ] = { setup: function(){ @@ -532,6 +533,36 @@ jQuery.each({ }; }); +// Create "bubbling" focus and blur events +jQuery.each({ + focus: "focusin", + blur: "focusout" +}, function( orig, fix ){ + var event = jQuery.event, + special = event.special, + handle = event.handle; + + function ieHandler() { + arguments[0].type = orig; + return handle.apply(this, arguments); + } + + special[orig] = { + setup:function() { + if ( this.addEventListener ) + this.addEventListener( orig, handle, true ); + else + jQuery.event.add( this, fix, ieHandler ); + }, + teardown:function() { + if ( this.removeEventListener ) + this.removeEventListener( orig, handle, true ); + else + jQuery.event.remove( this, fix, ieHandler ); + } + }; +}); + jQuery.fn.extend({ bind: function( type, data, fn, thisObject ) { if ( jQuery.isFunction( data ) ) {