如何将onkeydown / onfocus调用到列表标记?

时间:2015-05-08 14:35:31

标签: javascript jquery html5

我有一个列表,在这个列表中我试图在keyisdown / onfocus / etc时调用一个函数?这不会触发功能:

 <li onkeydown="myFunction()"></li>

正常onclick工作正常(当&#34;点击上升时调用该功能&#34;)并将触发该功能:

<li onclick="andrafarg()"></li>

所以我的问题是:如果立即点击列表,我怎么能调用这个函数?

1 个答案:

答案 0 :(得分:4)

来自jQuery文档:

  

当用户第一次按下a时,keydown事件被发送到一个元素   键盘上的键。它可以附加到任何元素,但事件   仅发送给具有焦点的元素。可聚焦元素可以   浏览器之间有所不同,但表单元素总是可以获得焦点   这种事件类型的合理候选人。

因为li元素无法集中注意力,keydown - 事件永远不会被触发。 有关可聚焦元素的参考,您可以查看this答案。

但是因为event-bubbling,列表中的input - 字段会触发keydown - 事件,如果事件监听器已注册输入本身或父元素。 例如:

<强> HTML

<ul>
    <li><input type="text" /></li>
</ul>

<强>的Javascript

$('ul > li').on('keydown', function(){
   alert('Event triggered'); 
});

Demo