Event#
Event.currentTarget#
Właściwość currentTarget
zwraca obiekt będący aktualnym celem zdarzenia, na którym uchwyt zdarzenia dla danego zdarzenia został wywołany. Jeśli zdarzenie nie zostało wysłane zwracana będzie wartość null
. 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:
var current_target = event.currentTarget;
gdzie poszczególne człony oznaczają:
current_target
- aktualny cel zdarzenia.event
- zdarzenie będące obiektem kontekstu.
Przy tworzeniu zdarzenia wartością domyślną dla właściwości currentTarget
musi być wartość null
.
Aktualny cel zdarzenia to obiekt, dla którego procedura obsługi danego zdarzenia została wywołana. Można to osiągnąć zarówno w fazie przechwytywania jak i fazie bąbelkowania wysłanego zdarzenia. Z punktu widzenia uchwytu zdarzenia musi on być obiektem, na którym uchwyt został zarejestrowany, czyli obiektem implementującym interfejs EventTarget.
Aktualnego celu zdarzenia nie należy mylić z celem zdarzenia. Obydwie właściwości będą jednakowe tylko i wyłącznie w sytuacji, kiedy zdarzenie osiąga swój cel (faza celu).
Po wykonaniu wszystkich faz dla danego zdarzenia właściwość currentTarget
z powrotem ustawiona zostaje na wartość null
.
Prosty przykład:
<!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");
button.addEventListener("click", function(e){
info.innerHTML += "Interfejs zdarzenia e: " + e // [object MouseEvent]
+ "<br>" + "e.type: " + e.type // click
+ "<br>" + "e.bubbles: " + e.bubbles // true
+ "<br>" + "e.cancelable: " + e.cancelable // true
+ "<br>" + "e.defaultPrevented: " + e.defaultPrevented // false
+ "<br>" + "e.isTrusted: " + e.isTrusted // true
+ "<br>" + "e.eventPhase: " + e.eventPhase // 2
+ "<br>" + "e.timeStamp: " + e.timeStamp // liczba całkowita z wartością zależną od chwili uruchomienia przykładu
+ "<br>" + "e.currentTarget: " + e.currentTarget // [object HTMLInputElement]
+ "<br>" + "e.target: " + e.target; // [object HTMLInputElement]
e.preventDefault();
info.innerHTML += "<br><br>" + "e.defaultPrevented: " + e.defaultPrevented; // true
}, false);
window.addEventListener("click", function(e){
info.innerHTML += "<br><br>" + "Interfejs zdarzenia e: " + e // [object MouseEvent]
+ "<br>" + "e.currentTarget: " + e.currentTarget // [object Window]
+ "<br>" + "e.target: " + e.target // [object HTMLInputElement]
+ "<br>" + "e.timeStamp: " + e.timeStamp;// liczba całkowita z wartością zależną od chwili uruchomienia przykładu
}, false);
}
</script>
</head>
<body>
<p>Kliknij w przycisk 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>
Interfejs Web IDL#
readonly attribute EventTarget? currentTarget;