关于keydown事件的这个陈述是什么意思?

时间:2016-02-01 22:20:05

标签: javascript jquery

  

当用户第一次按下a时,keydown事件被发送到一个元素   键盘上的键。它可以附加到任何元素,但事件   仅发送给具有焦点的元素。

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

2 个答案:

答案 0 :(得分:3)

考虑这个例子:



$('.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'>
&#13;
&#13;
&#13;

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

答案 1 :(得分:2)

当您点击网站上的任何内容(或触摸移动设备上的任何内容,或使用Tab键在元素之间跳转)时,您将焦点设置为该元素。例如,单击链接会将焦点设置在其上(然后链接有时会突出显示),单击输入字段会在其中显示小光标。这基本上是焦点的意思。

通过仅向具有焦点的元素发送事件,您可以避免出现这样的情况,即网站上有多个输入字段,并且键入一个您同时键入所有其他字段的字段,因为keydown事件只发送到具有焦点的那个(实质上 - 你之前点击过)。