Fix missing var declaration for the length iterator.
[jquery.git] / src / event.js
index fe98794..af78543 100644 (file)
@@ -57,6 +57,12 @@ jQuery.event = {
                        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.
@@ -422,6 +428,8 @@ jQuery.event = {
                                jQuery.extend( proxy, data || {} );
 
                                proxy.guid += data.selector + data.live; 
+                               data.liveProxy = proxy;
+
                                jQuery.event.add( this, data.live, liveHandler, data ); 
                                
                        },
@@ -604,6 +612,9 @@ jQuery.event.special.submit = {
                                        return trigger( "submit", this, arguments );
                                }
                        });
+
+               } else {
+                       return false;
                }
        },
 
@@ -756,7 +767,6 @@ jQuery.each(["bind", "one"], function( i, name ) {
                }
                
                if ( jQuery.isFunction( data ) ) {
-                       thisObject = fn;
                        fn = data;
                        data = undefined;
                }
@@ -767,7 +777,7 @@ jQuery.each(["bind", "one"], function( i, name ) {
                }) : fn;
 
                return type === "unload" && name !== "one" ?
-                       this.one( type, data, fn, thisObject ) :
+                       this.one( type, data, fn ) :
                        this.each(function() {
                                jQuery.event.add( this, type, handler, data );
                        });
@@ -851,7 +861,7 @@ jQuery.fn.extend({
 
 function liveHandler( event ) {
        var stop = true, elems = [], selectors = [], args = arguments,
-               related, match, fn, elem, j, i, data,
+               related, match, fn, elem, j, i, l, data,
                live = jQuery.extend({}, jQuery.data( this, "events" ).live);
 
        for ( j in live ) {
@@ -907,7 +917,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 ) {
 
@@ -916,8 +926,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;
        }
 });