Исследование W3C Модели событий
Третий параметр метода addEventListener() объекта EventTarget указывает, можно ли перехватить событие обработчиком события родительского объекта для данного целевого объекта.
Пример назначения целевого объекта и отправки объекта Event с помощью метода addEventListener() объекта EventTarget.
Исходный код этого примера:
<style>
#myDIV {
border: 2px solid #2375b1;
padding: 15px;
margin: 10px 0;
}
td {
text-align:center;
border: 1px solid #000;
}
tr:nth-child(1),
tr:nth-child(2) {
background-color:#ff9;
}
tr:nth-child(3),
tr:nth-child(4) {
background-color:#f99;
}
td input[type="button"] {
background-color: transparent;
border: none;
cursor: pointer;
}
</style>
<script type="text/javascript">
// add event listeners
function addBubbleListener(elemID) {
document.getElementById(elemID).addEventListener("click", reportEvent, false);
}
function addCaptureListener(elemID) {
document.getElementById(elemID).addEventListener("click", reportEvent, true);
}
// remove event listeners
function removeBubbleListener(elemID) {
document.getElementById(elemID).removeEventListener("click", reportEvent, false);
}
function removeCaptureListener(elemID) {
document.getElementById(elemID).removeEventListener("click", reportEvent, true);
}
// display details about any event heard
function reportEvent(evt) {
var elem = (evt.target.nodeType == 3) ? evt.target.parentNode : evt.target;
if (elem.id == "mySPAN") {
var msg = "Event processed at " + evt.currentTarget.tagName +
" element (event phase = " + evt.eventPhase + ").\n";
document.controls.output.value += msg;
}
}
// clear the details textarea
function clearTextArea() {
document.controls.output.value = "";
}
</script>
<body id="myBODY">
<h1>Исследование W3C Модели событий</h1>
<p>
Третий параметр метода addEventListener() объекта EventTarget указывает, можно ли перехватить
событие обработчиком события родительского объекта для данного целевого объекта.
</p>
<p>
Пример назначения целевого объекта и отправки объекта Event с помощью метода addEventListener() объекта EventTarget.
</p>
<form name="controls" id="controls">
<table>
<caption style="font-weight:bold">Control Panel</caption>
<tr>
<td rowspan="2">всплытие запрещено:</td>
<td><input type="button" value="Добавить в body" onclick=
"addBubbleListener('myBODY')"></td>
<td><input type="button" value="Удалить из body" onclick=
"removeBubbleListener('myBODY')"></td>
</tr>
<tr>
<td><input type="button" value="Добавить в div" onclick=
"addBubbleListener('myDIV')"></td>
<td><input type="button" value="Удалить из div" onclick=
"removeBubbleListener('myDIV')"></td>
</tr>
<tr>
<td rowspan="2">всплытие разрешено:</td>
<td><input type="button" value="Добавить в body" onclick=
"addCaptureListener('myBODY')"></td>
<td><input type="button" value="Удалить из body" onclick=
"removeCaptureListener('myBODY')"></td>
</tr>
<tr>
<td><input type="button" value="Добавить в div" onclick=
"addCaptureListener('myDIV')"></td>
<td><input type="button" value="Удалить из div" onclick=
"removeCaptureListener('myDIV')"></td>
</tr>
</table>
<div id="myDIV">
<span id="mySPAN">
Этот блок, внутри которого в span заключен текст.<br>
Нажимайте сюда мышью для просмотра возникающих событий.
</span>
</div>
<p>Характеристики события:
<input type="button" value="Clear" onclick="clearTextArea()">
</p>
<textarea name="output" cols="80" rows="6"></textarea>
</form>
.
Прокомментировать/Отблагодарить