2016-08-08 7 views
0

だから私の問題はこれで、グラブの両方の権利およびユーザーの左クリックと同時に

やっ場合はクリックと左クリック、ユーザーが右ならば同時に検出し、アクションをコミットする方法があった場合、私は思っていましたjQueryのように。マウスイベントでは、コードがマウスの右クリックまたは左クリックを一度に検出することしかできないようです。答えを

UPDATE

おかげで、私はそれを実装しようとしていたとき、最終的にその機能がユーザーのために持っているにはあまりにもファンキーだろうことを決めました。うまくいけば、これらの答えは他の人にも役立つでしょう。

答えて

2

あなたは個別に各マウスボタンの状態を保持し、両方のボタンがダウンしているかどうかを判断するためにそれを使用する変数を作成することができます

window.isLeftMouseDown = false; 
window.isRightMouseDown = false; 

$(document).on('mousedown', function(e) { 
    if (e.which == 1) 
    window.isLeftMouseDown = true; 
    else if (e.which == 3) 
    window.isRightMouseDown = true; 

    if (window.isLeftMouseDown && window.isRightMouseDown) { 
    console.log('both down'); 
    } 
}); 

$(document).on('mouseup', function(e) { 
    if (e.which == 1) 
    window.isLeftMouseDown = false; 
    else if (e.which == 3) 
    window.isRightMouseDown = false; 
}); 

https://jsfiddle.net/2j151tpt/

+0

mouseup/mousedownはマウスの右クリックを検出できますか? – gaetanoM

+1

私のフィドルで動作します。 –

+0

ありがとうございました。 – gaetanoM

1

このようなものです。 ES2015を使用します。

let left = false; 

document.addEventListener('mousedown', e => { 
    if (e.button === 0) { 
     left = true; 
    } else if (e.button === 2 && left) { 
     fireYourFunctionForTwoButtons(); 
    } 
}) 

document.addEventListener('mouseup', e => { 
    if (e.button === 0) { 
     left = false; 
    } 
}); 
1

私の提案は、経過に基づいています2回の連続クリック間の時間(ミリ秒):

$(function() { 
 
    $('#btn').data('last-left-click', 0).on('mousedown contextmenu', function (e) { 
 
    var nowTime = Date.now(); 
 
    if (e.which == 1) { 
 
     $(this).data('last-left-click', nowTime); 
 
    } 
 
    if (e.which == 3) { 
 
     // if less then 300 milliseconds.... 
 
     if ((nowTime - $(this).data('last-left-click')) < 300) { 
 
     console.log('Both left and right clicked in sequence in less then 300 milliseconds!'); 
 
     } 
 
     $(this).data('last-left-click', 0); 
 
    } 
 
    }); 
 
});
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
 

 
<button id="btn">Click Me</button>

関連する問題