Javascript 在同一事件侦听器中组合鼠标单击和enter键按下

Javascript 在同一事件侦听器中组合鼠标单击和enter键按下,javascript,Javascript,我有一个div,我用tabindex使它成为可聚焦的,我希望它像一个按钮一样,在鼠标点击和回车键按下的同时做一些事情。你能用一个事件监听器做到这一点,将以下内容组合成一个吗 document.getElementById("myId").addEventListener("click", function() { console.log("click"); }); document.getElementById("myId").addEventListener("keyup", func

我有一个div,我用tabindex使它成为可聚焦的,我希望它像一个按钮一样,在鼠标点击和回车键按下的同时做一些事情。你能用一个事件监听器做到这一点,将以下内容组合成一个吗

document.getElementById("myId").addEventListener("click", function() {
    console.log("click");
});
document.getElementById("myId").addEventListener("keyup", function(e) {
    if(e.keyCode === 13) {
        console.log("click");
    }
});

您可以将要处理的
事件
放入数组中,并使用
forEach
将事件侦听器添加到元素中


var div=document.querySelector('div');
[“点击”,“按键”]。forEach(ev=>{
第5部分添加事件列表器(ev,功能(e){
如果(ev=“点击”){
console.log(“单击”);//单击
}
如果(e.keyCode==13){
console.log(“单击”);//按enter键
}
});
});

否,您需要使用两个侦听器,但由于您必须将函数传递给被调用的侦听器并获取所有必要的参数,因此您可以为这两种情况创建一个函数,如下所示:

function handleEvent(e){
   if(e //make sure a mouseEvent has been passed as argument
       &&
      e.keyCode === 13 //check for the correct key
   ){
      console.log("click");
   }
}

document.getElementById("myId").addEventListener("click", handleEvent);
document.getElementById("myId").addEventListener("keyup", handleEvent);