Permalink
Browse files

Slider: Add demo for custom handle

Fixes #15023
Closes gh-1740
  • Loading branch information...
scottgonzalez committed Sep 2, 2016
1 parent 57bff49 commit 51461d523868c168f2e12eeb547c1cf8b7cf59cf
Showing with 60 additions and 3 deletions.
  1. +42 −0 demos/slider/custom-handle.html
  2. +1 −0 demos/slider/index.html
  3. +12 −0 tests/unit/slider/core.js
  4. +2 −2 tests/unit/slider/slider.html
  5. +3 −1 ui/widgets/slider.js
@@ -0,0 +1,42 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Slider - Custom handle</title>
<link rel="stylesheet" href="../../themes/base/all.css">
<link rel="stylesheet" href="../demos.css">
<style>
#custom-handle {
width: 3em;
height: 1.6em;
top: 50%;
margin-top: -.8em;
text-align: center;
line-height: 1.6em;
}
</style>
<script src="../../external/requirejs/require.js"></script>
<script src="../bootstrap.js">
var handle = $( "#custom-handle" );
$( "#slider" ).slider({
create: function() {
handle.text( $( this ).slider( "value" ) );
},
slide: function( event, ui ) {
handle.text( ui.value );
}
});
</script>
</head>
<body>
<div id="slider">
<div id="custom-handle" class="ui-slider-handle"></div>
</div>
<div class="demo-description">
<p>The basic slider is horizontal and has a single handle that can be moved with the mouse or by using the arrow keys.</p>
</div>
</body>
</html>
View
@@ -18,6 +18,7 @@
<li><a href="range-vertical.html">Vertical range slider</a></li>
<li><a href="multiple-vertical.html">Multiple sliders</a></li>
<li><a href="colorpicker.html">Simple colorpicker</a></li>
<li><a href="custom-handle.html">Custom handle</a></li>
</ul>
</body>
View
@@ -25,6 +25,18 @@ QUnit.test( "markup structure", function( assert ) {
assert.hasClasses( handle[ 1 ], "ui-slider-handle" );
} );
QUnit.test( "custom handle", function( assert ) {
assert.expect( 3 );
var element = $( "#slider-custom-handle" ).slider();
var customHandle = $( ".custom-handle" );
var sliderHandles = element.find( ".ui-slider-handle" );
assert.equal( sliderHandles.length, 1, "Only one handle" );
assert.strictEqual( sliderHandles[ 0 ], customHandle[ 0 ], "Correct handle" );
assert.equal( customHandle.attr( "tabIndex" ), 0, "tabIndex" );
} );
QUnit.test( "keydown HOME on handle sets value to min", function( assert ) {
assert.expect( 2 );
element = $( "<div></div>" );
@@ -25,8 +25,8 @@
<div id="slider1"></div>
<div id="slider2"></div>
<div id="slider3" style="position: relative; margin: 40px; width: 217px; height: 28px;">
<div class="ui-slider-handle" style="position: absolute; height: 21px; left: 0px; bottom: 0px; width: 17px;"></div>
<div id="slider-custom-handle">
<div class="ui-slider-handle custom-handle"></div>
</div>
</div>
View
@@ -117,7 +117,9 @@ return $.widget( "ui.slider", $.ui.mouse, {
this.handle = this.handles.eq( 0 );
this.handles.each( function( i ) {
$( this ).data( "ui-slider-handle-index", i );
$( this )
.data( "ui-slider-handle-index", i )
.attr( "tabIndex", 0 );
} );
},

1 comment on commit 51461d5

@sameer05k21a0440

This comment has been minimized.

Show comment
Hide comment
@sameer05k21a0440

sameer05k21a0440 Jan 24, 2018

I have dynamic multiple input and dynamic slider handle so when on change input text value need to set slider value but I can't set slider handle check below code .

 $(this).parents("tr").find('input[name="assesmentScore"]').change( function (event) {
	   					 var textValue = $(this).parents("tr").find('input[name="assesmentScore"]').val();
$("#bonusScore", $(this)).slider('value',textValue);    //here need to add dynamic slide how ? 
	   					handle.text(textValue); //Can't set corresponding text
});

I have dynamic multiple input and dynamic slider handle so when on change input text value need to set slider value but I can't set slider handle check below code .

 $(this).parents("tr").find('input[name="assesmentScore"]').change( function (event) {
	   					 var textValue = $(this).parents("tr").find('input[name="assesmentScore"]').val();
$("#bonusScore", $(this)).slider('value',textValue);    //here need to add dynamic slide how ? 
	   					handle.text(textValue); //Can't set corresponding text
});
Please sign in to comment.