diff options
author | Scott González <scott.gonzalez@gmail.com> | 2016-09-02 10:21:25 -0400 |
---|---|---|
committer | Scott González <scott.gonzalez@gmail.com> | 2016-09-13 08:41:33 -0400 |
commit | 51461d523868c168f2e12eeb547c1cf8b7cf59cf (patch) | |
tree | 152e7c29153c4ef8d69444a39a3e1a2172fca2ea | |
parent | 57bff499deb880dd500be503231853c97b317234 (diff) | |
download | jquery-ui-51461d523868c168f2e12eeb547c1cf8b7cf59cf.tar.gz jquery-ui-51461d523868c168f2e12eeb547c1cf8b7cf59cf.zip |
Slider: Add demo for custom handle
Fixes #15023
Closes gh-1740
-rw-r--r-- | demos/slider/custom-handle.html | 42 | ||||
-rw-r--r-- | demos/slider/index.html | 1 | ||||
-rw-r--r-- | tests/unit/slider/core.js | 12 | ||||
-rw-r--r-- | tests/unit/slider/slider.html | 4 | ||||
-rw-r--r-- | ui/widgets/slider.js | 4 |
5 files changed, 60 insertions, 3 deletions
diff --git a/demos/slider/custom-handle.html b/demos/slider/custom-handle.html new file mode 100644 index 000000000..11192f318 --- /dev/null +++ b/demos/slider/custom-handle.html @@ -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> diff --git a/demos/slider/index.html b/demos/slider/index.html index 1bc1198c4..f853a79aa 100644 --- a/demos/slider/index.html +++ b/demos/slider/index.html @@ -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> diff --git a/tests/unit/slider/core.js b/tests/unit/slider/core.js index 57affb0d1..8031367f0 100644 --- a/tests/unit/slider/core.js +++ b/tests/unit/slider/core.js @@ -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>" ); diff --git a/tests/unit/slider/slider.html b/tests/unit/slider/slider.html index 39bcd05c3..2afbeafde 100644 --- a/tests/unit/slider/slider.html +++ b/tests/unit/slider/slider.html @@ -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> diff --git a/ui/widgets/slider.js b/ui/widgets/slider.js index 4c1bdc05e..8b0f907f5 100644 --- a/ui/widgets/slider.js +++ b/ui/widgets/slider.js @@ -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 ); } ); }, |