// Make sure that the function being executed has a unique ID
if ( !handler.guid ) {
- handler.guid = this.guid++;
+ handler.guid = jQuery.guid++;
}
// if data is passed, bind to handler
handle = jQuery.data( elem, "handle", eventHandle );
}
+ // If no handle is found then we must be trying to bind to one of the
+ // banned noData elements
+ if ( !handle ) {
+ return;
+ }
+
// Add elem as a property of the handle function
// This is to prevent a memory leak with non-native
// event in IE.
elem = null;
},
- guid: 1,
global: {},
// Detach an event or set of events from an element
return event;
},
+ // Deprecated, use jQuery.guid instead
+ guid: 1E8,
+
+ // Deprecated, use jQuery.proxy instead
+ proxy: jQuery.proxy,
+
special: {
ready: {
// Make sure the ready event is setup
setup: jQuery.bindReady,
- teardown: function() {}
+ teardown: jQuery.noop
},
live: {
}
};
-jQuery.event.proxy = jQuery.proxy = function( fn, proxy, thisObject ) {
- if ( proxy !== undefined && !jQuery.isFunction( proxy ) ) {
- thisObject = proxy;
- proxy = undefined;
- }
-
- // FIXME: Should proxy be redefined to be applied with thisObject if defined?
- proxy = proxy || function() {
- return fn.apply( thisObject !== undefined ? thisObject : this, arguments );
- };
-
- // Set the guid of unique handler to the same of original handler, so it can be removed
- proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.event.guid++;
-
- // So proxy can be declared as an argument
- return proxy;
-};
-
jQuery.Event = function( src ) {
// Allow instantiation without the 'new' keyword
if ( !this.preventDefault ) {
return trigger( "submit", this, arguments );
}
});
+
+ } else {
+ return false;
}
},
return fn.apply( this, arguments );
}) : fn;
- return type === "unload" ? this.one(type, data, handler) : this.each(function() {
- jQuery.event.add( this, type, handler, data );
- });
+ return type === "unload" && name !== "one" ?
+ this.one( type, data, fn, thisObject ) :
+ this.each(function() {
+ jQuery.event.add( this, type, handler, data );
+ });
};
});
return ["live", type, selector.replace(/\./g, "`").replace(/ /g, "&")].join(".");
}
-jQuery.each( ("blur focus load resize scroll unload click dblclick " +
+jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
"change select submit keydown keypress keyup error").split(" "), function( i, name ) {
return fn ? this.bind( name, fn ) : this.trigger( name );
};
- if ( jQuery.fnAttr ) {
- jQuery.fnAttr[ name ] = true;
+ if ( jQuery.attrFn ) {
+ jQuery.attrFn[ name ] = true;
}
});