Make sure that we're doing proper focus bubble testing. Also simplified the logic for the IE focusin/focusout handling.
This commit is contained in:
parent
19ad49e607
commit
542099a278
2 changed files with 15 additions and 24 deletions
38
src/event.js
38
src/event.js
|
@ -674,36 +674,26 @@ function trigger( type, elem, args ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create "bubbling" focus and blur events
|
// Create "bubbling" focus and blur events
|
||||||
jQuery.each({
|
if ( !jQuery.support.focusBubbles ) {
|
||||||
focus: "focusin",
|
|
||||||
blur: "focusout"
|
|
||||||
}, function( orig, fix ){
|
|
||||||
var event = jQuery.event,
|
|
||||||
handle = event.handle;
|
|
||||||
|
|
||||||
function ieHandler() {
|
|
||||||
arguments[0].type = orig;
|
|
||||||
return handle.apply(this, arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.special[orig] = {
|
jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ){
|
||||||
setup:function() {
|
event.special[ orig ] = {
|
||||||
if ( this.addEventListener ) {
|
setup: function() {
|
||||||
this.addEventListener( orig, handle, true );
|
jQuery.event.add( this, fix, ieHandler );
|
||||||
} else {
|
|
||||||
event.add( this, fix, ieHandler );
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
teardown:function() {
|
teardown: function() {
|
||||||
if ( this.removeEventListener ) {
|
jQuery.event.remove( this, fix, ieHandler );
|
||||||
this.removeEventListener( orig, handle, true );
|
|
||||||
} else {
|
|
||||||
event.remove( this, fix, ieHandler );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function ieHandler() {
|
||||||
|
arguments[0].type = orig;
|
||||||
|
return jQuery.event.handle.apply(this, arguments);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
jQuery.fn.extend({
|
jQuery.fn.extend({
|
||||||
// TODO: make bind(), unbind() and one() DRY!
|
// TODO: make bind(), unbind() and one() DRY!
|
||||||
bind: function( type, data, fn, thisObject ) {
|
bind: function( type, data, fn, thisObject ) {
|
||||||
|
|
|
@ -109,6 +109,7 @@
|
||||||
|
|
||||||
jQuery.support.submitBubbles = eventSupported("submit");
|
jQuery.support.submitBubbles = eventSupported("submit");
|
||||||
jQuery.support.changeBubbles = eventSupported("change");
|
jQuery.support.changeBubbles = eventSupported("change");
|
||||||
|
jQuery.support.focusBubbles = eventSupported("focus");
|
||||||
|
|
||||||
// release memory in IE
|
// release memory in IE
|
||||||
root = script = div = all = a = null;
|
root = script = div = all = a = null;
|
||||||
|
|
Loading…
Reference in a new issue