按下游戏中的空格键将进行角色拍摄,当显示确认框时按空格键将使该框消失,按高分表格中的空格键将在输入框中添加空格。在这个例子中,同一个键有几个事件,但是每次只有一个事件被触发。在Javascript中处理多个关键事件的最佳方式是什么?
是否有一个通用的(或特定的Javascript)的方法或编程方式来添加事件到某个键,所以他们只在特定情况下执行?
当然这是可以做到这样的:
var inGame = true|false;
var inConfirmationBox = true|false;
function spaceBarHandler(){
if(inGame){ /*shoot*/}
else if(inConfirmationBox){ /*remove box*/}
}
document.onkeydown = function(){ /* call space bar handler if space bar was pressed */ };
但这是程序设计的一个非常混乱的方式,因为具体行动,在空格键的处理函数,这使得维修难混在一起。
处理一个键的多个事件的最佳方式是什么,以便这些事件只在某些情况下才会被触发?
我想这是最好的答案,谢谢!这个想法很好,我一定会使用它。我也会添加一个方法'addState(name,fn)',它使这个对象完成。感谢:] – Harmen 2010-06-29 20:30:58
但仍然远离处理这个问题的“最好的方式”。一个托管堆栈的处理程序更方便!由于这个问题很过时,如果有人有兴趣,我可以开发。 – Pierre 2012-12-21 09:37:56