diff --git a/js/widgets/forms/slider.js b/js/widgets/forms/slider.js index 9922a22904e..f655b328163 100644 --- a/js/widgets/forms/slider.js +++ b/js/widgets/forms/slider.js @@ -261,7 +261,7 @@ $.widget( "mobile.slider", $.mobile.widget, $.extend( { _sliderVMouseDown: function( event ) { // NOTE: we don't do this in refresh because we still want to // support programmatic alteration of disabled inputs - if ( this.options.disabled || !( event.which === 1 || event.which === 0 ) ) { + if ( this.options.disabled || !( event.which === 1 || event.which === 0 || event.which === undefined ) ) { return false; } if ( this._trigger( "beforestart", event ) === false ) { diff --git a/tests/unit/slider/slider_events.js b/tests/unit/slider/slider_events.js index d605acb05a0..a34ccad38ce 100644 --- a/tests/unit/slider/slider_events.js +++ b/tests/unit/slider/slider_events.js @@ -375,7 +375,7 @@ }); asyncTest( "drag should start only when clicked with left button", function(){ - expect( 4 ); + expect( 5 ); var control = $( "#mousedown-which-events" ), widget = control.data( "mobile-slider" ), @@ -405,6 +405,15 @@ function( result ) { deepEqual( result.slidestart.timedOut, false, "slider did emit 'slidestart' event upon left button press" ); event = $.Event( "mousedown", { target: handle[ 0 ] } ); + event.which = undefined; + slider.trigger( event ); + }, + { + slidestart: { src: control, event: "slidestart" + eventNs + "1" } + }, + function( result ) { + deepEqual( result.slidestart.timedOut, false, "slider did emit 'slidestart' event upon undefined button press" ); + event = $.Event( "mousedown", { target: handle[ 0 ] } ); event.which = 2; slider.trigger( event ); },