关于键控事件的这句话是什么意思

What does this statement on keydown event mean?

本文关键字:是什么 意思 这句话 于键控 事件      更新时间:2023-09-26

keydown 事件在用户首次按下 键盘上的键。它可以附加到任何元素,但事件 仅发送到具有焦点的元素。

我很困惑,因为我认为每个事件都是如此。单击事件可以附加到列表或段落,但只会发送到具有焦点的元素。我在这里错过了什么吗?另外,the event is only sent to the element that has the focus到底是什么意思?

考虑这个例子:

$('.example').on('keydown', function(e){
  alert($(this).data('name'))
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class='example' data-name='input1'>
<input class='example' data-name='input2'>
<input class='example' data-name='input3'>

keydown 事件绑定到所有 3 个输入元素,但是,仅返回事件发生的元素的名称,即具有焦点的元素。

当您单击网站上的任何内容(或触摸移动设备上的任何内容,或使用 Tab 在元素之间跳转)时,您将焦点设置为该元素。例如,单击链接会将焦点设置在它上面(链接有时会突出显示),单击输入字段会给您那里的小光标。这本质上就是焦点的含义。

通过

仅将事件发送到具有焦点的元素,您可以避免在网站上有多个输入字段的情况,并且通过键入一个输入字段,您可以同时键入所有其他字段,因为 keydown 事件仅发送到具有焦点的元素(本质上 - 您之前单击过)。