jquery event: fixes #4989. blur and focus events now bubble and can be handled using live().
This commit is contained in:
parent
f3474c00cd
commit
bca8225413
2 changed files with 63 additions and 2 deletions
35
src/event.js
35
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 ) ) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue