diff options
Diffstat (limited to 'htdocs/static/js/navigation.js')
-rw-r--r-- | htdocs/static/js/navigation.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/htdocs/static/js/navigation.js b/htdocs/static/js/navigation.js new file mode 100644 index 0000000..cb56db5 --- /dev/null +++ b/htdocs/static/js/navigation.js @@ -0,0 +1,44 @@ +var liSelected; +$(window).keydown(function(e) { + var li = $('#hostlist .list .thumbnail'); + if (e.which === 40) { + if (liSelected) { + liSelected.removeClass('selected'); + next = liSelected.next(); + if (next.length > 0) { + liSelected = next.addClass('selected'); + } else { + liSelected = li.eq(0).addClass('selected'); + } + } else { + liSelected = li.eq(0).addClass('selected'); + } + + $('body').scrollTo(liSelected, {offset: -20}); + return false; + } + + if (e.which === 38) { + if (liSelected) { + liSelected.removeClass('selected'); + next = liSelected.prev(); + if (next.length > 0) { + liSelected = next.addClass('selected'); + } else { + liSelected = li.last().addClass('selected'); + } + } else { + liSelected = li.last().addClass('selected'); + } + + $('body').scrollTo(liSelected, {offset: -20}); + return false; + } + + if (e.which === 13) { + if (liSelected) { + window.location = liSelected.find('a').attr('href'); + return false; + } + } +}); |