--- title: MouseEvent.button slug: Web/API/MouseEvent/button tags: - API - DOM - DOM Events - MouseEvent - Property - Read-only - Reference translation_of: Web/API/MouseEvent/button ---
{{APIRef("DOM Events")}}
読み取り専用プロパティ MouseEvent.button
はイベントのトリガーとなったのがどのボタンが押されたのかを表します。
このプロパティは、1つまたは複数のボタンを押したり離したりすることによって発生したイベント中にどのボタンが押されたかを示すことのみを保証します。したがって、 {{event("mouseenter")}}, {{event("mouseleave")}}, {{event("mouseover")}}, {{event("mouseout")}} ,{{event("mousemove")}} のようなイベントに対しては確かではありません。
ユーザーはポインティングデバイスの設定を変更できるため、例えばイベントのボタンプロパティがゼロだった場合、必ずしも物理的な左ボタンによるものとは限りません。ただし、そのような場合でも標準設定における左ボタンと同じ動作をするべきです。
Note: 全てのマウスイベントで扱える、複数のボタンを同時に押下されていることを表せる {{domxref("MouseEvent.buttons")}} プロパティと混同しないように注意してください。
var buttonPressed = instanceOfMouseEvent.button
該当するボタンに対応する番号:
0
: メインボタンが押された。通常は左ボタンか未初期化状態。1
: 補助ボタンが押された。通常はホイールボタンまたは中央のボタンが押された場合。2
: 第二ボタンが押された。通常は右ボタン。3
: 第四ボタン。一般的にブラウザーの戻るボタン。4
: 第五ボタン。一般的にブラウザーの進むボタン。上記のように、ボタンは標準の「左から右へ」のレイアウトとは異なるように構成されてもよいく、左利き用に設定されたマウスでは、ボタンの動作が逆になることがあります。いくつかのポインティングデバイスは1つのボタンしか持たず、キーボードまたは他の入力機構を使用して主、副、補助などを示します。他のポインティングデバイスは多くのボタンを異なる機能およびボタン値にマッピングすることができます。
<button id="button" oncontextmenu="event.preventDefault();">Click here with your mouse...</button>
<p id="log"></p>
let button = document.querySelector('#button');
let log = document.querySelector('#log');
button.addEventListener('mouseup', logMouseButton);
function logMouseButton(e) {
if (typeof e === 'object') {
switch (e.button) {
case 0:
log.textContent = 'Left button clicked.';
break;
case 1:
log.textContent = 'Middle button clicked.';
break;
case 2:
log.textContent = 'Right button clicked.';
break;
default:
log.textContent = `Unknown button code: ${btnCode}`;
}
}
}
Specification | Status | Comment |
---|---|---|
{{SpecName('DOM3 Events','#widl-MouseEvent-button','MouseEvent.button')}} | {{Spec2('DOM3 Events')}} | Compared to {{SpecName('DOM2 Events')}}, the return value can be negative. |
{{SpecName('DOM2 Events','#Events-MouseEvent','MouseEvent.button')}} | {{Spec2('DOM2 Events')}} | Initial definition. |