Skip to content

Commit 2ba75e2

Browse files
committed
Slider: Remove range div when changing range option to false. Fixes #9355 - Slider: Changing range option to false does not remove range div.
1 parent 3ec371b commit 2ba75e2

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

tests/unit/slider/slider_options.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ test( "values", function() {
200200
});
201201

202202
test( "range", function() {
203-
expect( 27 );
203+
expect( 33 );
204204
var range;
205205

206206
// min
@@ -300,6 +300,21 @@ test( "range", function() {
300300
equal( element.slider( "option", "values" ), null, "values" );
301301
deepEqual( element.slider( "values" ), [] , "values" );
302302
element.slider( "destroy" );
303+
304+
// Change range from true to false
305+
element = $( "<div></div>" ).slider({
306+
range: true,
307+
min: 1,
308+
max: 10,
309+
step: 1
310+
}).slider( "option", "range", false );
311+
equal( element.find( ".ui-slider-handle" ).length, 2, "range switch from true to false, both handles remain" );
312+
equal( element.find( ".ui-slider-range" ).length, 0, "range switch from true to false" );
313+
equal( element.slider( "option", "value" ), 0 , "option value" );
314+
equal( element.slider( "value" ), 1 , "value" );
315+
deepEqual( element.slider( "option", "values" ), [1, 1], "option values" );
316+
deepEqual( element.slider( "values" ), [1, 1], "values" );
317+
element.slider( "destroy" );
303318
});
304319

305320
})( jQuery );

ui/jquery.ui.slider.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,10 @@ $.widget( "ui.slider", $.ui.mouse, {
131131
this.range.addClass( classes +
132132
( ( options.range === "min" || options.range === "max" ) ? " ui-slider-range-" + options.range : "" ) );
133133
} else {
134-
this.range = $([]);
134+
if ( this.range ) {
135+
this.range.remove();
136+
}
137+
this.range = null;
135138
}
136139
},
137140

@@ -145,7 +148,9 @@ $.widget( "ui.slider", $.ui.mouse, {
145148

146149
_destroy: function() {
147150
this.handles.remove();
148-
this.range.remove();
151+
if ( this.range ) {
152+
this.range.remove();
153+
}
149154

150155
this.element
151156
.removeClass( "ui-slider" +

0 commit comments

Comments
 (0)