我想悬停&amp;在<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
&amp; mouseover
&amp; mouseenter
总是返回1.
如果我将event.which
替换为event.buttons
,它会在Firefox上返回良好的结果,但我认为event.buttons
与其他浏览器不兼容。
=&GT;这是一个错误吗?您是否有针对我的问题的任何浏览器兼容的替代解决方感谢
答案 0 :(得分:1)
如果你想为所有浏览器处理它(即使我无法复制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!');
}
});