From 51461d523868c168f2e12eeb547c1cf8b7cf59cf Mon Sep 17 00:00:00 2001 From: =?utf8?q?Scott=20Gonz=C3=A1lez?= Date: Fri, 2 Sep 2016 10:21:25 -0400 Subject: [PATCH] Slider: Add demo for custom handle Fixes #15023 Closes gh-1740 --- demos/slider/custom-handle.html | 42 +++++++++++++++++++++++++++++++++ demos/slider/index.html | 1 + tests/unit/slider/core.js | 12 ++++++++++ tests/unit/slider/slider.html | 4 ++-- ui/widgets/slider.js | 4 +++- 5 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 demos/slider/custom-handle.html 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 @@ + + + + + + jQuery UI Slider - Custom handle + + + + + + + + +
+
+
+ +
+

The basic slider is horizontal and has a single handle that can be moved with the mouse or by using the arrow keys.

+
+ + 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 @@
  • Vertical range slider
  • Multiple sliders
  • Simple colorpicker
  • +
  • Custom handle
  • 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 = $( "
    " ); 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 @@
    -
    -
    +
    +
    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 ); } ); }, -- 2.39.5