Moved jQuery.proxy() into core.
authorjeresig <jeresig@gmail.com>
Thu, 31 Dec 2009 20:06:45 +0000 (15:06 -0500)
committerjeresig <jeresig@gmail.com>
Thu, 31 Dec 2009 20:06:45 +0000 (15:06 -0500)
src/core.js
src/event.js

index 944e8a9..2c5445a 100644 (file)
@@ -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: {
index 97cb0cc..3e3f834 100644 (file)
@@ -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 ) {