我需要通过键盘而不仅仅是鼠标来访问应用程序功能。该应用程序使用jquery sortable来管理有序列表。任何人都可以建议如何通过键盘提供排序功能的想法?我正在通过http://jqueryui.com/sortable上的例子说明拖拽和拖放的基本排序。我还没有看到jqueryui / sortable上提到的任何内容,这让我相信框架没有内置的键盘支持。 或者,是否有其他支持键盘的java脚本排序框架?
答案 0 :(得分:3)
使用以下内容完成工作:
为列表中的所有项添加了tabindex。这允许用户选择并切换单个列表项。
添加了以下js:
$('.sortable li').focus(function() {
$(this).addClass("ui-selecting");
});
$('.sortable li').focusout(function() {
$(this).removeClass("ui-selecting");
});
$('.sortable li').bind('keydown', function(event) {
...
if(event.which == 38) //up
pseudocode:
<current.text := previous.text>
<current.data := previous.data>
<previous.text := current.text>
<previous.data := current.data>
<set_focus(previous)>
if(event.which == 40)
pseudocode:
<current.text := next.text>
<current.data := next.data>
<next.text := current.text>
<next.data := current.data>
<set_focus(next)>
因此,当箭头在列表中上下移动项目时,Tab键允许导航到项目并在项目中移动。 它的工作原理,但与使用鼠标时的拖放移动图形相比,它看起来非常原始。 想知道我是否能够以合理的努力为这一举动制作动画......