我想在 <div>
上同时悬停和鼠标左键单击但是event.which
始终返回 1:
$('#element2').mouseenter(function(event) {
switch (event.which) {
case 1: alert('Left Mouse pressed.'); break;
case 2: alert('Middle Mouse pressed.'); break;
case 3: alert('Right Mouse pressed.'); break;
default: alert('You have a strange Mouse!');
}
});
完整示例 here on jsfiddle .
一个mousedown
有效,但是 hover
& mouseover
& mouseenter
始终返回 1。
好吧,如果我替换 event.which
通过event.buttons
它在 Firefox 上返回了良好的结果,但我红色了 event.buttons
与其他浏览器不兼容。
=> 这是一个错误吗?对于我的问题,您有任何浏览器兼容的替代解决方案吗?谢谢
最佳答案
如果您想为所有浏览器处理它(即使我无法在 Chrome 上复制问题),您可以使用全局标志并检查它:
$(document).on('mousedown', function(e){
window.btnClicked = e.which;
}).on('mouseup', function(){
window.btnClicked = undefined;
});
$('#element2').mouseenter(function(event) {
switch (window.btnClicked) {
case 1: alert('Left Mouse pressed.'); break;
case 2: alert('Middle Mouse pressed.'); break;
case 3: alert('Right Mouse pressed.'); break;
default: alert('You have a strange Mouse!');
}
});
关于JavaScript - event.which 总是返回 1 悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30940290/