Javascript 按钮应使用哪个事件?

Javascript 按钮应使用哪个事件?,javascript,html,button,onclick,buttonclick,Javascript,Html,Button,Onclick,Buttonclick,我有一个按钮,如果用户启动这个按钮,我想执行一个操作 我记得有人告诉我,click事件不应该用于此目的,因为它只有在用户单击按钮时才会触发,而不是在使用键盘时触发;但是,实际上情况似乎并非如此: document.getElementById('asdf')。onclick=()=>{ document.getElementById('log').appendChild( document.createTextNode('单击\n') ) } 按我 实际单击、按enter键(当按钮有焦点时)和

我有一个按钮,如果用户启动这个按钮,我想执行一个操作

我记得有人告诉我,
click
事件不应该用于此目的,因为它只有在用户单击按钮时才会触发,而不是在使用键盘时触发;但是,实际上情况似乎并非如此:

document.getElementById('asdf')。onclick=()=>{
document.getElementById('log').appendChild(
document.createTextNode('单击\n')
)
}
按我

实际单击、按enter键(当按钮有焦点时)和按空格键(当按钮有焦点时)将触发按钮上的单击事件

添加ARIA角色“button”可以清楚地表明这是一个按钮控件,而不是链接。因为我们使用的是锚元素,所以控件是可聚焦的,浏览器将自动调用onclick处理程序来执行Enter击键。由于用户希望能够使用Enter或空格激活按钮,因此键盘处理程序提供了通过空格字符激活按钮的支持

资料来源:

单击并单击 在HTML元素上按下鼠标时,将触发onClick事件处理程序。onClick是一个依赖于鼠标的事件处理程序。但是,如果onClick事件处理程序与键盘导航链接或表单控件一起使用,则大多数主要浏览器和辅助技术都会在链接或控件具有焦点时按下Enter键时触发onClick。在这些情况下,onClick是一个独立于设备的事件处理程序


来源:

在确定按钮是否被单击时,可以使用
单击事件。当按钮具有焦点(即用户按下tab键以聚焦按钮)且用户按下enter或空格键时,它也会激发。这两个操作都将触发
单击事件

只有2次不会触发单击事件。一种是用户单击按钮并按住“单击”按钮,然后将光标移出按钮并在按钮外释放鼠标单击。另一种情况是,用户使用tab键聚焦按钮,按住空格键,然后再次按下tab键以失去对按钮的聚焦。这会阻止按钮被完全单击

但是,按住enter按钮(当按钮处于焦点时)会触发多个单击事件


长话短说,是的,完全可以使用
单击事件。

空格并在按钮上输入fire the click event。有些人不使用鼠标,在很多输入中使用空格来执行操作。这在任何地方都有记录吗?在答案中添加了几项