]> source.dussan.org Git - jquery-ui.git/commitdiff
Slider: Modified to allow value to reach max value with float step
authorAblay Keldibek <atomio.ak@gmail.com>
Wed, 4 Mar 2015 12:23:17 +0000 (18:23 +0600)
committerScott González <scott.gonzalez@gmail.com>
Tue, 10 Mar 2015 16:25:12 +0000 (12:25 -0400)
Fixes #11286
Closes gh-1465
(cherry picked from commit 60c00cd4ecdab41f44e125efe2679223e9cd5535)

tests/unit/slider/slider_methods.js
ui/slider.js

index c5c7e1254aaf85abef3d0106ed72492ccd382df7..ce26620e22173b53713415d36f23b3bfa661f200 100644 (file)
@@ -62,7 +62,7 @@ test( "disable", function() {
 });
 
 test( "value", function() {
-       expect( 17 );
+       expect( 18 );
        $( [ false, "min", "max" ] ).each(function() {
                var element = $( "<div></div>" ).slider({
                        range: this,
@@ -88,6 +88,16 @@ test( "value", function() {
        equal( element.slider( "value" ), 1, "value method get respects max" );
        equal( element.slider( "value", 2 ), element, "value method is chainable" );
        equal( element.slider( "option", "value" ), 1, "value method set respects max" );
+
+       // set max value with step 0.01
+       element.slider( "option", {
+               min: 2,
+               value: 2,
+               max: 2.4,
+               step: 0.01
+       });
+       element.slider( "option", "value", 2.4 );
+       equal( element.slider( "value" ), 2.4, "value is set to max with 0.01 step" );
 });
 
 //test( "values", function() {
index edc8b4027297c11989a0934f9db8bc3f1f88c01f..65204ca9168802e9328cc7927a161057f8a741da 100644 (file)
@@ -550,7 +550,7 @@ return $.widget( "ui.slider", $.ui.mouse, {
                var max = this.options.max,
                        min = this._valueMin(),
                        step = this.options.step,
-                       aboveMin = Math.floor( ( max - min ) / step ) * step;
+                       aboveMin = Math.floor( ( +( max - min ).toFixed( this._precision() ) ) / step ) * step;
                max = aboveMin + min;
                this.max = parseFloat( max.toFixed( this._precision() ) );
        },