JavaScript - event.which 总是返回 1 悬停

标签 javascript jquery hover mouse mouseclick-event

我想在 <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/

相关文章:

php - 在 url 中发送的 JQuery 多个变量

jquery - 使用 jQuery(或其他)劫持 ASP.NET MVC 上的表单提交

javascript - 复制元素伪 :hover styles using jQuery

javascript - 点击前点击事件触发

JavaScript addEventListener() 未按预期工作

jquery - 如何将 : Resize a single div, 放入容器中,其中有一个类似 div 的图 block

javascript - 不理解 Jquery 悬停

javascript - constructor.name 在 Internet Explorer 中未定义

javascript - 正则表达式 : How to get any of a string (in order)?

css - 有关于漂浮的指导吗?