From a5dbca4a06a930865a17a1d02fd88893b5a2b690 Mon Sep 17 00:00:00 2001 From: jeresig Date: Thu, 31 Dec 2009 15:06:45 -0500 Subject: [PATCH] Moved jQuery.proxy() into core. --- src/core.js | 20 ++++++++++++++++++++ src/event.js | 23 +++-------------------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/core.js b/src/core.js index 944e8a9b..2c5445ab 100644 --- a/src/core.js +++ b/src/core.js @@ -614,6 +614,26 @@ jQuery.extend({ return ret.concat.apply( [], ret ); }, + // A global GUID counter for objects + guid: 1, + + proxy: function( fn, proxy, thisObject ) { + if ( arguments.length === 2 && proxy && !jQuery.isFunction( proxy ) ) { + thisObject = proxy; + proxy = undefined; + } + + proxy = proxy || function() { + return fn.apply( 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.guid++; + + // So proxy can be declared as an argument + return proxy; + }, + // Use of jQuery.browser is frowned upon. // More details: http://docs.jquery.com/Utilities/jQuery.browser browser: { diff --git a/src/event.js b/src/event.js index 97cb0cca..3e3f8344 100644 --- a/src/event.js +++ b/src/event.js @@ -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 @@ -114,7 +114,6 @@ jQuery.event = { elem = null; }, - guid: 1, global: {}, // Detach an event or set of events from an element @@ -405,6 +404,8 @@ jQuery.event = { return event; }, + proxy: jQuery.proxy, + special: { ready: { // Make sure the ready event is setup @@ -456,24 +457,6 @@ jQuery.event = { } }; -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 ) {