- return type === "unload" ? this.one(type, data, fn, thisObject) : this.each(function() {
- jQuery.event.add( this, type, fn, data );
- });
- },
-
- one: function( type, data, fn, thisObject ) {
- // Handle object literals
- if ( typeof type === "object" ) {
- for ( var key in type ) {
- this.one(key, data, type[key], fn);
- }
- return this;
- }
-
- if ( jQuery.isFunction( data ) ) {
- thisObject = fn;
- fn = data;
- data = undefined;
- }
- fn = thisObject === undefined ? fn : jQuery.event.proxy( fn, thisObject );
- var one = jQuery.event.proxy( fn, function( event ) {
- jQuery( this ).unbind( event, one );
+ var handler = name == "one" ? jQuery.event.proxy( fn, function( event ) {
+ jQuery( this ).unbind( event, handler );