【发布时间】:2015-04-25 21:44:04
【问题描述】:
我目前正在构建一个通过 JavaScript 使用自定义快速导航的网站。
如果用户按右键,他将被导航到我的页面列表中的下一页,并且通过按 ALT + 向右键或向左键,他可以在浏览器历史记录中向前和向后导航。
这是我当前的代码:
var map = [];
window.onkeydown = window.onkeyup = function(e){
e = e || event; // to deal with IE
map[e.keyCode] = e.type == 'keydown';
if (map[18] && map[39]) { // ALT + Right
window.history.forward();
}
else if (map[18] && map[37]) { // ALT + Left
window.history.back();
}
else if (map[39]) { // Right Key
window.location.href = "{{ path('sctn_findsong') }}";
}
if (map[38]){ // Up Key
//
}
if (map[40]){ // Down Key
//
}
}
一切正常,除了一个小问题: 假设我想返回三页 - 如果我是一个逻辑思考的人,我会先按 ALT + 左键返回一个站点,然后当我在上一个站点时,按住 ALT 并按左键再次返回一个站点。但是,当我返回一个站点并按住 ALT 时,它不会记录 ALT 仍被按下,所以每次我到达前一个站点时都必须再次按 ALT,这很烦人。 我如何让它按照我想要的方式工作? 帮助表示赞赏。
【问题讨论】:
标签: javascript jquery keypress keylistener keydown