JavaScript - event.which 总是 return 1 用于悬停
JavaScript - event.which always return 1 for hovering
我想悬停和鼠标左键单击同时<div>
但是event.which
总是 returns 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。
A mousedown
有效,但 hover
& mouseover
& mouseenter
总是 return 1.
好吧,如果我将 event.which
替换为 event.buttons
,它 return 在 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!');
}
});
我想悬停和鼠标左键单击同时<div>
但是event.which
总是 returns 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。
A mousedown
有效,但 hover
& mouseover
& mouseenter
总是 return 1.
好吧,如果我将 event.which
替换为 event.buttons
,它 return 在 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!');
}
});