我发现的jQuery奇怪的行为, click
事件。 如果我们使用键盘导航(无障碍情况下),单击由输入或空间发射(这取决于,HTML元素,我们正在使用的)。
有上的jsfiddle一个测试页面,你可以尝试用键盘在结果框浏览,然后单击在不同情况下启动:
http://jsfiddle.net/DCXhN/9/
在jQuery的手册中,我发现下面的描述点击事件:
“单击事件被发送给一个元素,当鼠标指针在元件和鼠标按钮被按下并释放。任何HTML元素可以收到此事件”。
它是正常的吗? 如何截取只有鼠标点击事件,如果是正常的行为?
是的,这是正常的。 jQuery的文档是正确的,但有点不完整的。 有一个在更多的细节WC3网站 -例如:
注:为了获得最大的可访问性,鼓励内容作者定义的激活行为时自定义控件,而不是其他的定位设备的事件类型,比如鼠标按下或鼠标松开,这是更针对具体设备的使用点击事件类型。 虽然点击事件类型有其在指针设备的起源(例如,小鼠),随后执行增强功能扩展它超出了关联,并且它可以被认为是对元件的激活与设备无关的事件类型。
或者,换一种说法,对于一些元素,点击()本质上是一个事件,而不是特定于设备的事件。
如果你真的想只鼠标输入响应,你可以使用鼠标按下/上事件 - 但请记住,那么你就必须让你的UI键盘单独访问(例如,使用的keydown /新闻/等活动提供了键盘。当量)。