当用户第一次按下a时,keydown事件被发送到一个元素 键盘上的键。它可以附加到任何元素,但事件 仅发送给具有焦点的元素。
我很困惑,因为我认为这是每个事件的情况。点击事件可以附加到列表或段落,但只会发送到具有焦点的元素。我在这里错过了什么吗?另外,the event is only sent to the element that has the focus
究竟意味着什么?
答案 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;
keydown事件绑定到所有3个输入元素,但是,仅为事件发生的元素返回名称,即具有焦点的元素。
答案 1 :(得分:2)
当您点击网站上的任何内容(或触摸移动设备上的任何内容,或使用Tab键在元素之间跳转)时,您将焦点设置为该元素。例如,单击链接会将焦点设置在其上(然后链接有时会突出显示),单击输入字段会在其中显示小光标。这基本上是焦点的意思。
通过仅向具有焦点的元素发送事件,您可以避免出现这样的情况,即网站上有多个输入字段,并且键入一个您同时键入所有其他字段的字段,因为keydown事件只发送到具有焦点的那个(实质上 - 你之前点击过)。