mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Slider: fixed change event to be triggered by keyup and value and values option setters. Fixes #5367 - slider change event not triggered by keypress
This commit is contained in:
parent
e84a318e46
commit
0604e11052
@ -20,7 +20,7 @@ test( "slide", function() {
|
||||
// value (even if same as previous value), via mouse(mouseup) or keyboard(keyup)
|
||||
// or value method/option"
|
||||
test( "change", function() {
|
||||
expect(7);
|
||||
expect(8);
|
||||
|
||||
var handle;
|
||||
// Test mouseup at end of handle slide (mouse)
|
||||
@ -48,7 +48,7 @@ test( "change", function() {
|
||||
el.find( ".ui-slider-handle" ).eq( 0 )
|
||||
.simulate( "keydown", { keyCode: $.ui.keyCode.LEFT } )
|
||||
.simulate( "keypress", { keyCode: $.ui.keyCode.LEFT } )
|
||||
.simulate( "keyup", { charCode: $.ui.keyCode.LEFT } );
|
||||
.simulate( "keyup", { keyCode: $.ui.keyCode.LEFT } );
|
||||
|
||||
reset();
|
||||
// Test value method
|
||||
|
12
ui/jquery.ui.slider.js
vendored
12
ui/jquery.ui.slider.js
vendored
@ -193,9 +193,9 @@ $.widget("ui.slider", $.ui.mouse, {
|
||||
var index = $(this).data("index.ui-slider-handle");
|
||||
|
||||
if (self._keySliding) {
|
||||
self._keySliding = false;
|
||||
self._stop(event, index);
|
||||
self._change(event, index);
|
||||
self._keySliding = false;
|
||||
$(this).removeClass("ui-state-active");
|
||||
}
|
||||
|
||||
@ -480,6 +480,12 @@ $.widget("ui.slider", $.ui.mouse, {
|
||||
|
||||
_setOption: function(key, value) {
|
||||
|
||||
var i,
|
||||
valsLength = 0;
|
||||
if ( jQuery.isArray(this.options.values) ) {
|
||||
valsLength = this.options.values.length;
|
||||
};
|
||||
|
||||
$.Widget.prototype._setOption.apply(this, arguments);
|
||||
|
||||
switch (key) {
|
||||
@ -505,11 +511,15 @@ $.widget("ui.slider", $.ui.mouse, {
|
||||
case 'value':
|
||||
this._animateOff = true;
|
||||
this._refreshValue();
|
||||
this._change(null, 0);
|
||||
this._animateOff = false;
|
||||
break;
|
||||
case 'values':
|
||||
this._animateOff = true;
|
||||
this._refreshValue();
|
||||
for (i = 0; i < valsLength; i++) {
|
||||
this._change(null, i);
|
||||
}
|
||||
this._animateOff = false;
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user