"keyup"事件和"keydown"由同一事件处理程序调用



希望你度过美好的一周:D

我刚开始使用JavaScript,想知道是否可以从一个事件处理程序处理这两个事件。

例如

document.addEventListener("keydown",handleKeys);
document.addEventListener("keyup",handleKeys);
function handleKeys(e , a){
switch(e.keyCode) {
case '0': return isSomething = a; // a = false | true for keydown and keyup
}
}

像这样的东西可能是吗

是的,这是可能的,不过您需要设置handleKeys的第二个参数,或者它将是undefined

document.addEventListener("keydown", e => handleKeys(e, true));
document.addEventListener("keyup", e => handleKeys(e, false));
function handleKeys(e, down) {
console.log(down);
}

是的,你可以这样做,但是-不要这样做-最好使用两个单独的处理程序。如果它们有共享代码,那么将该代码移动到单独的第三个方法,该方法将使用该处理程序进行调用。

最新更新