Fixed typo in logic, also disabled function setters in this case to allow the functi...
[jquery.git] / src / event.js
index 97cb0cc..0234998 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,11 +404,17 @@ jQuery.event = {
                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: {
@@ -456,24 +461,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 ) {
@@ -617,6 +604,9 @@ jQuery.event.special.submit = {
                                        return trigger( "submit", this, arguments );
                                }
                        });
+
+               } else {
+                       return false;
                }
        },
 
@@ -779,9 +769,11 @@ jQuery.each(["bind", "one"], function( i, name ) {
                        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 );
+                       });
        };
 });
 
@@ -918,7 +910,7 @@ function liveConvert( type, selector ) {
        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 ) {
 
@@ -927,8 +919,8 @@ jQuery.each( ("blur focus load resize scroll unload click dblclick " +
                return fn ? this.bind( name, fn ) : this.trigger( name );
        };
 
-       if ( jQuery.fnAttr ) {
-               jQuery.fnAttr[ name ] = true;
+       if ( jQuery.attrFn ) {
+               jQuery.attrFn[ name ] = true;
        }
 });