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.
jQuery.extend( proxy, data || {} );
proxy.guid += data.selector + data.live;
+ data.liveProxy = proxy;
+
jQuery.event.add( this, data.live, liveHandler, data );
},
return trigger( "submit", this, arguments );
}
});
+
+ } else {
+ return false;
}
},
}
if ( jQuery.isFunction( data ) ) {
- thisObject = fn;
fn = data;
data = undefined;
}
}) : 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 );
});
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 ) {
return fn ? this.bind( name, fn ) : this.trigger( name );
};
- if ( jQuery.fnAttr ) {
- jQuery.fnAttr[ name ] = true;
+ if ( jQuery.attrFn ) {
+ jQuery.attrFn[ name ] = true;
}
});