让我说我有
<div onmouseup="myfunction()">
</div>
但是如果点击鼠标左键或右键怎么知道呢?
答案 0 :(得分:3)
有两个属性可以找出点击了哪个鼠标按钮:which
和button
。请注意,这些属性并不总是适用于单击事件。要安全地检测鼠标按钮,您必须使用mousedown或mouseup事件。
which
是旧的Netscape属性。这将为鼠标按钮提供以下值。
Left button - 1
Middle button - 2
Right Button - 3
没有问题,除了它微薄的支持(以及它也用于密钥检测的事实)。
现在按钮已被犯规超出所有认可。根据W3C,它的值应该是:
Left button – 0
Middle button – 1
Right button – 2
根据微软的说法,它的价值应该是:
Left button – 1
Middle button – 4
Right button – 2
毫无疑问,微软的模式比W3C更好。 0应该表示“没有按下按钮”,其他任何东西都是不合逻辑的。
此外,只有在Microsoft模型中才能组合按钮值,因此5表示“左侧和中间按钮”。甚至Explorer 6实际上还没有支持这个,但是在W3C模型中这样的组合在理论上是不可能的:你永远不知道左键是否也被点击了。
要检查点击了哪种类型的按钮,请始终使用which
和button
属性的功能检测
if (e.which) {
// old netsapce implementation
consoel.log((e.which == 3) + ' right click');
} else if (e.button) {
// for microsoft or W3C model implementation
consoel.log((e.button == 2) + ' right click');
}
<强>参考:强>
答案 1 :(得分:0)
检查此功能:
function getEvt (evt) {
var mouseEvt = (evt).which;
var mMouseEvt = evt.button;
console.log(mouseEvt);
console.log(mMouseEvt);
}
返回int。例如,左键单击:
1 listeners.js (line 43)
0 listeners.js (line 44)
答案 2 :(得分:-1)
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
}