@@ -26,7 +26,7 @@ jQuery.event = {
// 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
@@ -35,7 +35,7 @@ jQuery.event = {
var fn = handler;
// Create unique handler function, wrapped around original handler
handler = this .proxy ( fn );
handler = jQuery .proxy ( fn );
// Store data in unique handler
handler .data = data;
@@ -114,7 +114,6 @@ jQuery.event = {
elem = null ;
},
guid: 1 ,
global: {},
// Detach an event or set of events from an element
@@ -405,23 +404,11 @@ jQuery.event = {
return event ;
},
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 );
};
// Deprecated, use jQuery.guid instead
guid: 1E8 ,
// 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 || this .guid ++ ;
// So proxy can be declared as an argument
return proxy;
},
// Deprecated, use jQuery.proxy instead
proxy: jQuery .proxy ,
special: {
ready: {
@@ -759,7 +746,7 @@ if ( document.addEventListener ) {
}
jQuery .each ([" bind" , " one" ], function ( i , name ) {
jQuery .fn [ name ] = function ( type , data , fn , thisObject ) {
jQuery .fn [ name ] = function ( type , data , fn ) {
// Handle object literals
if ( typeof type === " object" ) {
for ( var key in type ) {
@@ -773,11 +760,12 @@ jQuery.each(["bind", "one"], function( i, name ) {
fn = data;
data = undefined ;
}
fn = thisObject === undefined ? fn : jQuery . event . proxy ( fn, thisObject );
var handler = name === " one" ? jQuery .event . proxy ( fn, function ( event ) {
var handler = name === " one" ? jQuery .proxy ( fn, function ( event ) {
jQuery ( this ).unbind ( event , handler );
return fn .apply ( this , arguments );
}) : fn;
return type === " unload" && name !== " one" ?
this .one ( type, data, fn, thisObject ) :
this .each (function () {
@@ -822,10 +810,10 @@ jQuery.fn.extend({
// link all the functions, so any of them can unbind this click handler
while ( i < args .length ) {
jQuery .event . proxy ( fn, args[ i++ ] );
jQuery .proxy ( fn, args[ i++ ] );
}
return this .click ( jQuery .event . proxy ( fn, function ( event ) {
return this .click ( jQuery .proxy ( fn, function ( event ) {
// Figure out which function to execute
var lastToggle = ( jQuery .data ( this , " lastToggle" + fn .guid ) || 0 ) % i;
jQuery .data ( this , " lastToggle" + fn .guid , lastToggle + 1 );
@@ -842,17 +830,16 @@ jQuery.fn.extend({
return this .mouseenter ( fnOver ).mouseleave ( fnOut || fnOver );
},
live : function ( type , data , fn , thisObject ) {
live : function ( type , data , fn ) {
if ( jQuery .isFunction ( data ) ) {
if ( fn !== undefined ) {
thisObject = fn;
}
fn = data;
data = undefined ;
}
jQuery ( this .context ).bind ( liveConvert ( type, this .selector ), {
data: data, selector: this .selector , live: type
}, fn, thisObject );
}, fn );
return this ;
},
This comment has been minimized.
Prestaul repliedJan 14, 2010
John, it looks like you left a vestigial "thisObject" in event.js which is now floating around line 765. This is resulting in a window.thisObject showing up after any use of bind or one. Any chance of getting that cleaned up?
This comment has been minimized.
Prestaul repliedJan 16, 2010
Thanks John! http://github.com/jquery/jquery/commit/4397f0fd41064346bce16772eec78c