Добавляем...


"Восхождение" событий
Поток движения событий в Internet Explorer противоположен соответствующему потоку в Netscape 4. Большинство событий начинаются в объекте, для которого они происходят, и "поднимаются" по иерархии. При "восхождении" событий соответствующим обработчикам событий на каждом уровне иерархии предоставляется возможность обработать, перенаправить или пропустить событие по дереву иерархии. "Восхождение" событий продолжается вплоть до объекта Document, где оно останавливается (т.е., события не распространяются до объекта window).

На некоторые события, имеющие специальные вполне определенные значения — например, подтверждение отправки формы и получение фокуса — "восхождение" не распространяется. События, для которых "восхождение" предусмотрено, проходят путь по дереву, инициируя вызов соответствующих обработчиков событий на каждом уровне иерархии, пока не будет достигнут верхний уровень или событие не будет отменено. События, для которых "восхождение" не предусмотрено, вызывают обработчик события только того объекта, для которого они происходят. Рациональным объяснением этого является то, что такие события не имеют четкой семантики на высших уровнях иерархии, поэтому их и не следует распространять по дереву. Список событий Internet Explorer и характеристики их свойств "восхождения" и отмены приводятся в таблице.

Обработчик событий "Восхождение" Возможность отмены
onabort Нет Да
onactivate Да Нет
onafterprint Нет Нет
onafterupdate Да Нет
onbeforeactivate Да Да
onbeforecopy Да Да
onbeforecut Да Да
onbeforedeactivate Да Да
onbeforeeditfocus Да Да
onbeforepaste Да Да
onbeforeprint Нет Нет
onbeforeunload Нет Да
onbeforeupdate Да Да
onblur Нет Нет
onbounce Нет Да
oncellchange Да Нет
onchange Нет Да
onclick Да Да
oncontextmenu Да Да
oncontrolselect Да Да
oncopy Да Да
oncut Да Да
ondataavailable Да Нет
ondatasetchanged Да Нет
ondatasetcomplete Да Нет
ondblclick Да Да
ondeactivate Да Нет
ondrag Да Да
ondragend Да Да
ondragenter Да Да
ondragleave Да Да
ondragover Да Да
ondragstart Да Да
ondrop Да Да
onerror Нет Да
onerrorupdate Да Нет
onfilterchange Нет Нет
onfinish Нет Да
onfocus Нет Нет
onfocusin Да Нет
onfocusout Да Нет
onhelp Да Да
onkeydown Да Да
onkeypress Да Да
onkeyup Да Нет
onlayoutcomplete Да Да
onload Нет Нет
onlosecapture Нет Нет
onmousedown Да Да
onmouseenter Нет Нет
onmouseleave Нет Нет
onmouesmove Да Нет
onmouseout Да Нет
onmouseover Да Да
onmouseup Да Да
onmousewheel Да Да
onmove Да Нет
onmoveend Да Нет
onmovestart Да Да
onpaste Да Да
onpropertychange Нет Нет
onreadystatechange Нет Нет
onreset Нет Да
onresize Нет Нет
onresizeend Да Нет
onresizestart Да Да
onrowenter Да Нет
onrowexit Нет Да
onrowsdelete Да Нет
onrowsinserted Да Нет
onscroll Нет Нет
onselect Нет Да
onselectionchange Нет Нет
onselectstart Да Да
onstart Нет Нет
onstop Нет Нет
onsubmit Нет Да
onunload Нет Нет


Вас может заинтересовать возможности отмены, о которой сообщает таблица. Идея заключается в том, что для события с возможностью отмены можно остановить его движение вверх в сценарии. Как это сделать, мы покажем чуть позже, а сейчас для иллюстрации процесса "восхождения" событий мы рассмотрим следующий пример. Обработчики события click здесь определены для множества объектов в иерархии, и каждый из обработчиков события выводит имя элемента, к которому он присоединен, в абзац со значением id, равным "results":

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Пример "Всплытия" событий</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<script type="text/javascript">
<!--
function gotClick(who)
{
document.all.results.innerHTML += who + " получил щелчок <br />";
}
// -->
</script>
<!--
Template Coder: M. Hodge
Content Coder: D Whitworth 031005
Programmer:
//-->
</head>
<body onclick="gotClick('body');">
<table onclick="gotClick('table');">
<tr onclick="gotClick('tr');">
<td onclick="gotClick('td');">
<p onclick="gotClick('p');">
Щелкните на тексте, <b onclick="gotClick('b');">ВЫДЕЛЕННОМ ПОЛУЖИРНЫМ ШРИФТОМ</b>, чтобы увидеть эффект "всплытия" в действии !
</p>
</td>
</tr>
</table>
<hr /> <br />
<p id="results"> </p>
</body>
</html>


Щелчок на тексте, выделенном полужирным шрифтом, вызывает наступление события click в рамках дескриптора <b>. Событие начинает "всплывать" вверх, вызывая обработчики событий onclick для объектов, находящихся выше исходного в иерархии вложений


добавить комментарий
(без перезагрузки и регистрации)


10 случайных разделов

Что ищем на сайте ?


Примеры кода на сайте







@ 2008-2011 Amber
При использовании материалов ссылка на сайт обязательна
Яндекс.Метрика