Further optimize the empty/remove/cleanData logic.

This commit is contained in:
jeresig 2010-01-28 15:25:52 -05:00
parent 0252b78201
commit 98c7248518
3 changed files with 80 additions and 40 deletions

View file

@ -221,11 +221,7 @@ jQuery.event = {
if ( !ret ) {
if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
if ( elem.removeEventListener ) {
elem.removeEventListener( type, elemData.handle, false );
} else if ( elem.detachEvent ) {
elem.detachEvent( "on" + type, elemData.handle );
}
removeEvent( elem, type, elemData.handle );
}
ret = null;
@ -529,6 +525,14 @@ jQuery.event = {
}
};
var removeEvent = document.removeEventListener ?
function( elem, type, handle ) {
elem.removeEventListener( type, handle, false );
} :
function( elem, type, handle ) {
elem.detachEvent( "on" + type, handle );
};
jQuery.Event = function( src ) {
// Allow instantiation without the 'new' keyword
if ( !this.preventDefault ) {