});
test( "mouse based interaction part two: when handles overlap", function() {
- expect( 4 );
+ expect( 6 );
var element = $( "#slider1" )
.slider({
});
handles.eq( 0 ).simulate( "drag", { dx: 10 } );
+ element = $( "#slider1" )
+ .slider({
+ range: true,
+ min: 0,
+ max: 100,
+ values: [ 0, 50 ]
+ }),
+ handles = element.find( ".ui-slider-handle" );
+
+ element.slider( "option", { values: [ 100, 100 ] } );
+ handles.eq( 0 ).simulate( "drag", { dx: -10 } );
+ equal( element.slider( "values" )[ 0 ], 99, "setting both values of range slider to the maximum doesn't lock slider" );
+
+ element.slider( "option", { values: [ 0, 0 ] } );
+ handles.eq( 1 ).simulate( "drag", { dx: 10 } );
+ equal( element.slider( "values" )[ 1 ], 1, "setting both values of range slider to the minimum doesn't lock slider" );
});
})( jQuery );
--- /dev/null
+<!DOCTYPE html>
+<html>
+<head lang="en">
+ <meta charset="UTF-8">
+ <title>jQuery UI Slider - Range slider</title>
+ <link rel="stylesheet" href="../../../themes/base/all.css">
+ <style>
+ #wrapper {
+ font-family: Arial;
+ width: 500px;
+ margin: 20px auto;
+ }
+ </style>
+ <script src="../../../external/jquery/jquery.js"></script>
+ <script src="../../../ui/core.js"></script>
+ <script src="../../../ui/widget.js"></script>
+ <script src="../../../ui/mouse.js"></script>
+ <script src="../../../ui/slider.js"></script>
+</head>
+<body>
+<div id="wrapper">
+ <h1>Range Slider</h1>
+ <h3>When set both values of range slider to the maximum, slider should not lock</h3>
+ <div id="slider"></div>
+ <br>
+ <button id="set-max-values">set values to max</button>
+ <button id="set-min-values">set values to min</button>
+</div>
+
+<script>
+ var el = $( "#slider" ).slider({
+ range: true,
+ min: 0,
+ max: 100,
+ values: [ 0, 50 ]
+ });
+
+ $( "#set-max-values" ).on( "click", function() {
+ el.slider( "option", { values: [ 100, 100 ] } );
+ });
+
+ $( "#set-min-values" ).on( "click", function() {
+ el.slider( "option", { values: [ 0, 0 ] } );
+ });
+</script>
+</body>
+</html>
case "values":
this._animateOff = true;
this._refreshValue();
- for ( i = 0; i < valsLength; i += 1 ) {
+
+ // Start from the last handle to prevent unreachable handles (#9046)
+ for ( i = valsLength - 1; i >= 0; i-- ) {
this._change( null, i );
}
this._animateOff = false;