私がどのようにしてJavaScriptの中マウスのクリックはjQueryに関連していますが、通常のJavaScriptを使用してマウスの中ボタンのクリックをどのように検出できるのでしょうか? onClick()
しかし、マウスの左ボタンでしか機能しないようです。
左と中マウスボタンのクリックの両方を検出できるJavaScript関数がありますか?そうでなければ中マウスボタンのクリックを検出できるJavaScript関数はありますか?
私が尋ねる理由は、左または中マウスボタンが使用されたかどうかに関わらず、リンクがクリックされたときに関数呼び出しを行いたいということです。
回答:
回答№1の場合は10onclickはマウスに縛られるのではなく、ターゲット要素自体に関連しています。
要素が中間クリックされたかどうかを検出する方法は次のとおりです。
document.body.onclick = function (e) {
if (e && (e.which == 2 || e.button == 4 )) {
console.log("middleclicked")
}
}
回答№2については2
あなたはイベントを検出する必要があります 2
event = event || window.event; //make sure to pass the event into the function
if (event.which == 2) {
//do code..
}
回答№3の場合は1
以下のコードを参考にしてください。ユーザーがクリックしたマウスボタンを検出できます。 e.which == 2
中央のボタン用です。
<script type="text/javascript">
function detect_button(e){
e = e || window.event;
if (e.which == null){
button = (e.button < 2) ? "left" : ((e.button == 4) ? "middle" : "right");
}
else{
button = (e.which < 2) ? "left" : ((e.which == 2) ? "middle" : "right");
}
alert(button);
}
</script>
回答№4の場合は0
DOMとJavascriptエンジンに既に組み込まれているものを使用し、ブラウザが異なる場合(これがjQueryが通常使用される理由です)に配置する必要があります。
document.getElementById("myBtn").onclick = function(event) {
event = event || window.event
// Now event is the event object in all browsers.
// Note: event.target - the reference to clicked element. IE uses event.srcElement
// In W3C there is a button property which works same in all browsers except IE:
// 0 - left button, 1 - middle button, 2 - right button
// For IE, left button = button & 1 (the 1st bit) is set to 1
// right button = button & 2 (the 2nd bit) is 1
// and middle button = button & 4 (the 3rd bit)
var left = event.button == 0 || 1 == event.button&1;
var middle = event.button == 1 || 1 == event.button&2;
var right = event.button == 2 || 1 == event.button&3;
// Put your code here
}