本文介绍了jQuery鼠标的.click()是通过键盘导航启动的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我发现jQuery 点击事件的奇怪行为。如果我们使用键盘导航(辅助工具箱),点击由Enter或Space启动(这取决于我们使用的HTML元素)。

I've found strange behavior of jQuery click event. If we are using keyboard navigation (accessibility case), click is launched by Enter or Space (it depends, which HTML element we are using ).

有一个测试页在jsfiddle上,您可以尝试使用结果框架中的键盘进行导航,然后单击在不同的情况下启动:

There is a test page on jsfiddle, You could try to navigate with keyboard in Result frame, and click is launched in different situations :

在jQuery手册中,我发现以下事件的描述:

In jQuery manual, I have found following description of click event :

当鼠标指针在元素上方时,点击事件被发送到元素,鼠标按钮被按下并被释放。任何HTML元素都可以接收这个事件。

是正常吗?如果是正常行为,如何截取鼠标点击事件?

Is it normal ? How to intercept only mouse click events if it's normal behavior ?

推荐答案

是的,这是正常现象。 JQuery文档是正确的,但有点不完整。有关的更多详情 - 例如:

Yes, this is normal. The JQuery documentation is correct, but a bit incomplete. There's more details on the - eg:

或者换一种方式,对于某些元素,click()本质上是一个逻辑事件,而不是特定于设备的事件。

Or, put another way, for some elements, click() is essentially a logical event rather than a device-specific event.

如果你真的只想回应鼠标输入,你可以使用mousedown / up事件 - 但请记住,然后你必须制作你的UI键盘可以单独访问(例如,使用keydown / press / etc事件提供键盘等效)。

If you really want to only respond to mouse input, you can use the mousedown/up events - but keep in mind you'll then have to make your UI keyboard accessible separately (eg. using keydown/press/etc events to provide a keyboard equivalent).

这篇关于jQuery鼠标的.click()是通过键盘导航启动的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-02 17:13