MouseEvent#

MouseEvent.buttons#

Właściwość buttons zwraca liczbę całkowitą w postaci maski bitowej, która reprezentuje stany wszystkich przycisków w chwili wysłania danego zdarzenia. Właściwość jest tylko do odczytu.

Składnia#

Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
var whatButtons = mouseEvent.buttons;

gdzie poszczególne człony oznaczają:

Przy tworzeniu zdarzenia wartością domyślną dla właściwości buttons musi być wartość 0.

W czasie wysyłania zaufanych zdarzeń domyślna wartość przechowywana we właściwości buttons może ulec zmianie we wszystkich typach zdarzeń myszy (w zależności od wciśniętego przycisku/przycisków).

W przypadku syntetycznych zdarzeń możemy samodzielnie ustawić wartość maski bitowej dla zdarzenia, np. w czasie tworzenia lub inicjowania zdarzenia.

Maska bitowa będzie miała postać liczby dziesiętnej typu unsigned short. Może zatem przyjąć wartość od 0 do 65535, aczkolwiek właściwość buttons zazwyczaj operuje jedynie na zakresie od 0 do 7 (3 bitów). Dla osób nieobytych z zapisem dwójkowym może być problem z rozpoznaniem poszczególnych bitów. W poniższej tabeli zamieszczam relację między wartością w zapisie binarnym i dziesiętnym oraz odpowiadające im stany przycisków.

Zapis binarnyZapis dziesiętnyZnaczenie
0000Żaden przycisk nie jest aktywny (wartość domyślna).
0011Wskazuje główny przycisk urządzenia (zazwyczaj lewy przycisk lub pojedynczy przycisk w urządzeniu jednoprzyciskowym, używany do aktywacji kontrolki interfejsu użytkownika lub zaznaczenia tekstu) lub wartość domyślną.
0102Wskazuje przycisk drugorzędny (zazwyczaj prawy przycisk, często używany do wyświetlania menu kontekstowego).
1004Wskazuje przycisk pomocniczy (zazwyczaj środkowy przycisk, często w połączeniu z kółkiem myszy).
011
101
110
111
3
5
6
7
Różne kombinacje powyższych.

Niektóre urządzenia wskazujące wprowadzają lub symulują więcej przycisków, i wartości wyższe od 7 (w binarnych seriach 8, 16, 32,...) mogą reprezentować tego typu przyciski.

Niektóre domyślne akcje skojarzone ze zdarzeniami takimi jak mousedown i mouseup zależą od tego, który przycisk został użyty.

Ponieważ suma każdego zbioru wartości dla przycisków tworzy unikatowy numer, to autory zawartości mogą używać operacji bitowych, aby określić ile przycisków jest obecnie wciśniętych i które są to przyciski, dla dowolnej liczby przycisków w urządzeniu. W ramach uzupełnienia warto przeanalizować operacje na maskach bitowych przy opisie metody Node.compareDocumentPosition() oraz interfejsu NodeFilter.

Właściwości buttons nie należy mylić z mniej uniwersalną właściwością MouseEvent.button.

Prosty przykład:

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
<!DOCTYPE html>
<html>

<head>

	<script>

		// Uruchom po całkowitym załadowaniu dokumentu
		window.onload = function(){

			var button = document.getElementById("press");
			var info = document.getElementById("info");

			function readInfo(e){

				var data = "Interfejs: " + e
					+ "<br>" + "e.type: " + e.type
					+ "<br>" + "e.buttons: " + e.buttons + "<br><br>";

				info.innerHTML = data + info.innerHTML;

			}

			button.addEventListener("click", readInfo, false);
			button.addEventListener("dblclick", readInfo, false);
			button.addEventListener("mousedown", readInfo, false);
			button.addEventListener("mouseup", readInfo, false);

		}

	</script>

</head>

<body>

	<p>Kliknij w przycisk przy użyciu dowolnego przycisku myszy (nawet kilku jednocześnie) by uzyskać szczegółowe informacje dla zdarzenia.</p>
	<input id="press" type="button" value="Kliknij mnie!">

	<p style="color: blue;">Szczegółowe informacje dla przechwyconego zdarzenia:</p>
	<p id="info"></p>

</body>

</html>

Na chwilę obecną jedynie przeglądarki Firefox i IE11 obsługują właściwość buttons.

Interfejs Web IDL#

  1. L
  2. K
  3. T'
  4. T
  5. A
  6. O
  7. Z'
  8. Z
  9. #
readonly attribute unsigned short buttons;

Specyfikacje i inne materiały#

Pasek społecznościowy

SPIS TREŚCI AKTUALNEJ STRONY

MouseEvent (H1) MouseEvent.buttons (H2) Składnia (H3) Interfejs Web IDL (H3) Specyfikacje i inne materiały (H3)