]> source.dussan.org Git - jquery-ui.git/commitdiff
Slider: Remove range div when changing range option to false. Fixes #9355 - Slider...
authorScott González <scott.gonzalez@gmail.com>
Mon, 3 Jun 2013 19:14:08 +0000 (15:14 -0400)
committerScott González <scott.gonzalez@gmail.com>
Mon, 3 Jun 2013 19:14:46 +0000 (15:14 -0400)
tests/unit/slider/slider_options.js
ui/jquery.ui.slider.js

index 3a6f55390e013b090339874c24c93e2801fad169..b89981115d6ca4d429d71ca0c5064b50d62c248c 100644 (file)
@@ -200,7 +200,7 @@ test( "values", function() {
 });
 
 test( "range", function() {
-       expect( 27 );
+       expect( 33 );
        var range;
 
        // min
@@ -300,6 +300,21 @@ test( "range", function() {
        equal( element.slider( "option", "values" ), null, "values" );
        deepEqual( element.slider( "values" ), [] , "values" );
        element.slider( "destroy" );
+
+       // Change range from true to false
+       element = $( "<div></div>" ).slider({
+               range: true,
+               min: 1,
+               max: 10,
+               step: 1
+       }).slider( "option", "range", false );
+       equal( element.find( ".ui-slider-handle" ).length, 2, "range switch from true to false, both handles remain" );
+       equal( element.find( ".ui-slider-range" ).length, 0, "range switch from true to false" );
+       equal( element.slider( "option", "value" ), 0 , "option value" );
+       equal( element.slider( "value" ), 1 , "value" );
+       deepEqual( element.slider( "option", "values" ), [1, 1], "option values" );
+       deepEqual( element.slider( "values" ), [1, 1], "values" );
+       element.slider( "destroy" );
 });
 
 })( jQuery );
index ee7b3538f6a2ccd172dc51e50d224644e25c3de8..e4f1cf7c94105baab7eb59e2da4246ed55724836 100644 (file)
@@ -131,7 +131,10 @@ $.widget( "ui.slider", $.ui.mouse, {
                        this.range.addClass( classes +
                                ( ( options.range === "min" || options.range === "max" ) ? " ui-slider-range-" + options.range : "" ) );
                } else {
-                       this.range = $([]);
+                       if ( this.range ) {
+                               this.range.remove();
+                       }
+                       this.range = null;
                }
        },
 
@@ -145,7 +148,9 @@ $.widget( "ui.slider", $.ui.mouse, {
 
        _destroy: function() {
                this.handles.remove();
-               this.range.remove();
+               if ( this.range ) {
+                       this.range.remove();
+               }
 
                this.element
                        .removeClass( "ui-slider" +