2017-07-31 8 views
1

例:あなたは、ブラウザのコンソールに... 真ん中が同時にログ1,4すぎでログ1,4と、左右のボタンをクリックすることを置く場合javascript MouseEventsを使用して左クリックと右クリックの中間クリックを区別する方法は?

document.querySelector("body").addEventListener("mousedown", (e) => console.log(e.button, e.buttons)); 

ブラウザがクリックをデバウンシングして特定の遅延を報告していますか?どのように私は両方のものを区別することができますか?

+0

私は、マウスイベントが非常によくて考えられていたとは思いません。 「左」と「右」ボタンのコンセプトは不適切で、「一次」、「二次」などのようなものだったはずです。私は、マウスと同様にCADコンピュータを使い始めましたが、デジタル化)して9つのボタンを押します。私ができることは、[* button *](https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button)プロパティです。これは0から4までの値を返しますサポートを確認してください、それは一貫していません)。 – RobG

答えて

0
var buttonsMap = { 
    1 : "primary", 
    2 : "contextmenu", 
    3 : "primary + contextmenu", 
    4 : "middle", 
    5 : "primary + middle", 
    6 : "contextmenu + middle" 
} 


document.body.addEventListener("mousedown", (e) => { 

    console.log(buttonsMap[e.buttons]); // Here you go 

    // What you could do: 
    if(/3|5|6/.test(e.buttons)) { 
    console.log("DOUBLE!!!"); 
    } else { 
    console.log("single"); 
    } 

}); 

jsBin demo

https://w3c.github.io/uievents/#dom-mouseevent-buttons

+0

コードのみの回答は役に立ちません。 [* W3C UI Events spec *](https://w3c.github.io/uievents/#widl-MouseEvent-buttons)や[* MDN MouseEvent.buttons *](https://)などの関連リソースへのリンクを含める必要があります。 /developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons)。 0はどこですか? – RobG

関連する問題