//...
<a href="#" id="foo-link">Foo</a>
<script type="text/javascript">
$('#foo-link').click(function(e) {
//...
}
</script>
//...
在 HTML 页面上使用 jQuery,click
执行上面定义的处理程序
- 当用户点击它并
- 当用户通过Tab导航到它并按Enter 键时
(至少在 Firefox 中)传递给处理程序的点击事件之间似乎没有区别 - 原始键事件“神奇地”转换为点击事件。
有没有办法区分这两种情况?
为了详细说明为什么我需要以不同的方式处理这两种情况:在我的特定情况下,单击处理程序将焦点设置为文本输入字段。这个文本输入字段有一个keyup
注册的事件处理程序,它发送一个 AJAX 请求。当用户在链接上按Enter后触发点击处理程序时keyup
,现在聚焦的文本输入字段接收到该事件,并且错误地发送了 AJAX 请求。