|
- (function($){
- var SELECTED_FILE_ELEM = null;
- var ENABLE_KEY_NAV = true;
-
- $(document).keydown(function(event) {
- if (!ENABLE_KEY_NAV)
- return true;
- var selection = SELECTED_FILE_ELEM;
- switch (event.keyCode) {
- case 74: // j
- if (selection == null) {
- selection = $('#f0');
- } else {
- do {
- selection = selection.next();
- } while (selection.length > 0 && selection.css('display') == 'none');
- }
- break;
- case 75: // k
- if (selection == null) {
- selection = $('#f0');
- } else {
- do {
- selection = selection.prev();
- } while (selection.length > 0 && selection.css('display') == 'none');
- }
- break;
- case 13: // Enter
- case 79: // o
- if (selection != null) {
- var expander = selection.find('.expander');
- if (expander.length > 0) {
- expander.click();
- } else {
- window.location = selection.find('a.file').attr('href');
- }
- }
- return false;
- break;
- default:
- return true;
- }
- if (selection.length > 0) {
- if (SELECTED_FILE_ELEM != null)
- SELECTED_FILE_ELEM.removeClass('focus');
- selection.addClass('focus');
- SELECTED_FILE_ELEM = selection;
- }
- return false;
- });
-
- $(function() {
- $('a,input,select,textarea,button')
- .focus(function(event) {
- ENABLE_KEY_NAV = false;
- })
- .blur(function(event) {
- ENABLE_KEY_NAV = true;
- });
- });
- })(jQuery);
|