mirror of
https://github.com/scrapy/scrapy.git
synced 2025-02-27 20:43:56 +00:00
62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
|
(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);
|