2013-05-30 3 views
4

У меня есть требование сделать доступным доступ к функциям приложения с клавиатуры, а не только с помощью мыши. Приложение использует сортировку jquery для управления упорядоченными списками. Может ли кто-нибудь предложить идеи, как сделать функции сортировки доступными с клавиатуры? Я говорю базовый сорт через drag & drop, как показано на примере на http://jqueryui.com/sortable. Я не видел ничего упомянутого в jqueryui/sortable, из-за чего я считаю, что в каркасе нет встроенной поддержки клавиатуры. В качестве альтернативы, существуют ли какие-либо другие рамки JavaScript-скриптов, поддерживающие клавиатуру?jqueryui сортируется с клавиатурой?

ответ

3

Ну получил его на работу, используя следующие:

  1. Добавлена ​​TabIndex ко всем элементам в списке. Это позволяет пользователю вносить вкладки в отдельные элементы списка и через них.

  2. добавлены следующие ЯШ:

    $('.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)> 
    

Так позволяет табуляции перемещения и перемещения по пунктам, а стрелки перемещения элементов вверх и вниз по списку. Он работает, но, конечно, выглядит очень примитивно по сравнению с перетаскиванием движущейся графики при использовании мыши. Удивление, если я смогу анимировать ход, при разумных усилиях ...

Смежные вопросы