Make sure non-left-click events don't bubble. Fixes #3861.
[jquery.git] / src / event.js
index fb28cb9..5271460 100644 (file)
@@ -670,9 +670,9 @@ function testChange( e ) {
                        jQuery.data( elem, "_change_data", val );
                }
 
-               if ( elem.type !== "select" && (data != null || val) ) {
+               if ( data != null || val ) {
                        e.type = "change";
-                       return jQuery.event.trigger( e, arguments[1], this );
+                       return jQuery.event.trigger( e, arguments[1], elem );
                }
 }
 
@@ -861,9 +861,14 @@ 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);
 
+       // Make sure we avoid non-left-click bubbling in Firefox (#3861)
+       if ( event.button && event.type === "click" ) {
+               return;
+       }
+
        for ( j in live ) {
                fn = live[j];
                if ( fn.live === event.type ||