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


Отмена действий, выполняемых по умолчанию
Как и более традиционные модели, DOM уровня 2 позволяет отменить действие, по умолчанию связанное с событием, возвратив значение false из программы обработки события. Но в DOM уровня 2 предлагается также метод preventDefault() для объектов Event. Если в какой-то момент существования объекта Event обработчик события вызывает метод preventDefault(), то действие, принятое для события по умолчанию, отменяется. Здесь важно учитывать один важный момент: если для события вызывается метод preventDefault(), то типичное действие для события будет отменено — возвращение значения true другим обработчиком события не заставит снова выполняться действие, принятое по умолчанию.
Следующий простой фрагмент программного кода не дает щелчкам в любом месте документа производить привычный эффект.

Попробуйте щелкнуть
<a href="http://www.javascriptref.com">сюда</a>.
<script type="text/javascript">

// DOM 2 browsers only, no IE6 support
function killClicks(event)
{
event.preventDefault();
}
document.addEventListener("click", killClicks, true);

</script>

Важно помнить о том, что отмена действия по умолчанию для события сама по себе не отменяет прохождение этого события по иерархии объектов документа. Рассмотрим следующий сценарий, подобный предыдущему, но с добавленным для ссылки обработчиком событий onclick:

Попробуйте щелкнуть
<a id="mylink" href="http://www.javascriptref.com">сюда</a>.
<script type="text/javascript">

// Только браузеры DOM 2, в IE6 не поддерживаеться
function killClicks(event)
{
event.preventDefault();
}
document.addEventListener("click", killClicks, true);
document.getElementById("mylink").onclick = function() {
alert("Событие click добралось до узла ссылки");
}

</script>

При выполнении щелчка на ссылке действие, принятое по умолчанию, отменяется с помощью killClick(), событие click для ссылки все же выполняется. Это иллюстрирует тот факт, что распространение событий по иерархии объектов документа не зависит от выполнения или невыполнения действия, принятого для события по умолчанию.


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


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

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


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







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