我发现 jQuery 的奇怪行为click
事件。如果我们使用键盘导航(辅助功能情况),则通过 Enter 或 Space 启动单击(这取决于我们使用的是哪个 HTML 元素)。
jsfiddle 上有一个测试页面,您可以尝试在结果框架中使用键盘导航,并在不同情况下启动单击:
http://jsfiddle.net/DCXhN/9/ http://jsfiddle.net/DCXhN/9/
在 jQuery 手册中,我发现了以下描述click http://api.jquery.com/click/ event :
“当鼠标指针悬停在某个元素上,按下并释放鼠标按钮时,将向该元素发送 click 事件。任何 HTML 元素都可以接收此事件。”
正常吗?如果这是正常行为,如何仅拦截鼠标单击事件?
是的,这是正常的。 JQuery 文档是正确的,但有点不完整。还有更多详细信息WC3 site http://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - eg:
Note: For maximum accessibility, content authors are encouraged to use the click event type when defining activation behavior for custom controls, rather than other pointing-device event types such as mousedown or mouseup, which are more device-specific. Though the click event type has its origins in pointer devices (e.g., a mouse), subsequent implementation enhancements have extended it beyond that association, and it can be considered a device-independent event type for element activation.
或者,换句话说,对于某些元素,click() 本质上是一个逻辑事件,而不是特定于设备的事件。
如果您确实只想响应鼠标输入,则可以使用 mousedown/up 事件 - 但请记住,您必须使 UI 键盘可单独访问(例如,使用 keydown/press/etc 事件来提供键盘相等的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)