diff options
author | David Bolter <david.bolter@gmail.com> | 2008-07-14 17:50:43 +0000 |
---|---|---|
committer | David Bolter <david.bolter@gmail.com> | 2008-07-14 17:50:43 +0000 |
commit | e16cb37f2eea8a1d396588968db39eadeef09b47 (patch) | |
tree | a35b7434948efa849038c4aecff470ed5226861f /ui/ui.slider.js | |
parent | 0aa54f8dfc6bddfaadc5c84d399a5daced83daa9 (diff) | |
download | jquery-ui-e16cb37f2eea8a1d396588968db39eadeef09b47.tar.gz jquery-ui-e16cb37f2eea8a1d396588968db39eadeef09b47.zip |
completes keyboard operation (fixes #3801)
Diffstat (limited to 'ui/ui.slider.js')
-rw-r--r-- | ui/ui.slider.js | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/ui/ui.slider.js b/ui/ui.slider.js index fe2d514a0..bfc6e9c70 100644 --- a/ui/ui.slider.js +++ b/ui/ui.slider.js @@ -157,11 +157,21 @@ $.widget("ui.slider", { keydown: function(keyCode, handle) { - if(/(37|38|39|40)/.test(keyCode)) { - var oper = /(37|40)/.test(keyCode) ? "-=" : "+="; + var k = keyCode; + if(/(33|34|35|36|37|38|39|40)/.test(k)) { + var o = this.options, xpos, ypos; + if (/(35|36)/.test(k)) { + xpos = (k == 35) ? o.max.x : o.min.x; + ypos = (k == 35) ? o.max.y : o.min.y; + } else { + var oper = /(34|37|40)/.test(k) ? "-=" : "+="; + var step = /(37|38|39|40)/.test(k) ? "oneStep" : "pageStep"; + xpos = oper + this[step]("x"); + ypos = oper + this[step]("y"); + } this.moveTo({ - x: oper + this.oneStep("x"), - y: oper + this.oneStep("y") + x: xpos, + y: ypos }, handle); } }, @@ -280,6 +290,9 @@ $.widget("ui.slider", { oneStep: function(axis) { return this.options.stepping[axis] || 1; }, + pageStep: function(axis) { + return /* this.options.paging[axis] ||*/ 10; + }, start: function(e, handle) { |