什么是最好的方式来检测在JavaScript中使用JavaScript在DIV中按下了哪个按钮?在Javascript中检测FireFox的鼠标按钮
2
A
回答
3
有两个属性可以找出哪个鼠标按钮被点击:哪个和哪个按钮。请注意,这些属性并不总是适用于点击事件。要安全地检测鼠标按钮,您必须使用mousedown或mouseup事件。
这是一个旧的网景财产。左按钮给出1的值,中按钮(鼠标滚轮)给出2,右按钮给出3.没有问题,除了它微薄的支持(以及它也用于键检测的事实)。
现在按钮已被超过所有承认被玷污。根据W3C其值应为:
* Left button – 0
* Middle button – 1
* Right button – 2
根据微软自己的价值观应该是:
* Left button – 1
* Middle button – 4
* Right button – 2
毫无疑问,微软模式比W3C的更好。 0应该表示“没有按钮被按下”,其他任何事情都是不合逻辑的。
此外,只有在Microsoft模型中,按钮值才可以组合,所以5代表“左键和中键”。甚至连浏览器6都没有支持这一点,但在W3C模型中,这样的组合在理论上是不可能的:你永远不知道左边的按钮是否也被点击了。
在我看来,W3C在定义按钮时犯了一些严重的错误。 右击
幸运的是,您最常想知道是否点击了正确的按钮。由于W3C和微软就此达成一致,并给出了按钮值2,您仍然可以检测到右键单击。
function doSomething(e) {
var rightclick;
if (!e) var e = window.event;
if (e.which) rightclick = (e.which == 3);
else if (e.button) rightclick = (e.button == 2);
alert('Rightclick: ' + rightclick); // true or false
}
请注意,虽然Mac电脑只有一个鼠标按键,Mozilla的给出了一个按住Ctrl单击2按钮值,因为按Ctrl键单击也带来了上下文菜单。 iCab目前还不支持鼠标按键属性,但您仍然无法在Opera中检测到右键单击。
0
[jQuery的] [1]提到你怎么能在这里检测到鼠标按钮:点击任何 鼠标按钮时发送 http://api.jquery.com/mousedown/
MouseDown事件。要仅在特定按钮上执行 ,我们可以使用事件对象的哪个属性。并非所有的浏览器 支持此属性 (Internet Explorer使用按钮而是 ),但jQuery的规范了 属性,因此它是安全的 任何浏览器中使用。其中 的值将为1为左按钮,2为 中按钮,或3为右 按钮。
相关问题
- 1. 在mousemove上无法检测到按下的鼠标按钮?
- 2. 检测鼠标左键按
- 3. 检测鼠标被按下
- 4. Delphi检测鼠标悬停在窗体的关闭按钮上
- 5. 检测Python中的鼠标侧按钮事件
- 6. 在WPF中按下按钮后检测鼠标点击的最佳方法
- 7. 在webview中检测JavaScript按钮?
- 8. 当鼠标按下按钮进入QGraphicsItem时检测到
- 9. 检测是否按下鼠标按钮和哪个WinForm c#
- 10. MacOS的检测,如果鼠标按钮向下的KeyDown
- 11. 如何在鼠标左键按下时检测鼠标移动?
- 12. ToolStripMenuItem中的鼠标按钮
- 13. Gtk/GtkD检测窗口大小的鼠标按钮释放?
- 14. 检测鼠标后退/前进按钮的点击
- 15. 检测额外的鼠标按钮批量点击
- 16. 在silverlight中按下鼠标按钮3
- 17. Java检查鼠标按钮状态
- 18. 检查所有鼠标按钮的按钮状态
- 19. 棘手的按钮移动时,在鼠标在Javascript中?
- 20. Javascript按钮,防止鼠标双击
- 21. 检测鼠标点击Facebook像按钮(从Chrome扩展)
- 22. 如何检测鼠标点击一个按钮,下拉菜单
- 23. LWJGL键盘和鼠标检测按
- 24. Zedgraph在线检测鼠标
- 25. 检测按钮在javascript中的按下方式
- 26. 在IE中按下鼠标左键时如何检测鼠标右键?
- 27. 将鼠标悬停在按钮上并不适用于Firefox
- 28. 如何在Delphi中检测前进和后退鼠标按钮事件?
- 29. 在Firefox中捕获鼠标
- 30. JQuery的/ JavaScript的按钮的检测指标压
格式化您的代码。 – 2010-07-08 08:33:30
+1。体面的写作。可以在这里找到更长时间的讨论:http://unixpapa.com/js/mouse.html – 2010-07-08 08:35:07
在这个+1的时候,在Chrome和IE/Firefox之间检查mouseover事件的'which'是不同的。绝对绑定到适当的mouseup/down事件以获得更高的准确性。 – Aesthete 2013-01-22 05:56:31