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


Обработка событий
Теперь, когда вы имеете некоторое представление о том, как получить доступ к объектам страницы, необходимо выяснить, как контролировать эти объекты в отношении активности пользователя. Реагирование сценариев на действия пользователя осуществляется главным образом через обработчики событий. Обработчик событий (называемый также программой обработки событий) — это программный код JavaScript, связанный с конкретной частью документа и специфическим "событием". Этот программный код выполняется только тогда, когда данное событие происходит в соответствующей части документа. Типичными событиями являются Click, Mouseover и MouseOut, происходящие, соответственно, тогда, когда пользователь выполняет щелчок кнопкой мыши в заданной части документа, размещает над ней указатель мыши или убирает указатель от нее. События обычно связываются с кнопками и полями форм, изображениями и ссылками, и используются в задачах наподобие проверки данных форм и для создания эффектов сменяемой графики. При этом важно помнить о том, что не каждый объект способен обрабатывать все типы событий. События, которые может обрабатывать объект, являются в значительной степени отражением типичных возможностей использования этого объекта.

Установка обработчика события | Вызов обработчика события

Установка обработчика события

Вы, вероятно, уже видели программы обработки событий в (X)HTML. В следующем простом примере пользователю предъявляется окно с сообщением, когда пользователь выполняет щелчок на кнопке:

<form method="get" action="#">
<input type="button" value="Haжмитe здесь" onclick="alert('Щекотно!');" /> </form>

Атрибут onclick дескриптора <input> используется для того, чтобы привязать данный программный код к событию Click — щелчку на кнопке. Каждый раз, когда пользователь щелкает на соответствующей кнопке, браузер отправляет событие Click объекту Button, что заставляет объект вызывать свой обработчик события onclick.
Но откуда браузер "знает", где находится обработчик события объекта? Это определяется той частью объектной модели документа, которая называется моделью событий. Модель событий — это просто набор интерфейсов и объектов, которые делают возможным данный вид обработки событий. В основных браузерах обработчики событий объекта доступны в виде свойств этого объекта. Поэтому вместо использования разметки, привязывающей программу обработки события к объекту, можно сделать это исключительно средствами JavaScript. Так, следующий программный код эквивалентен программному коду предыдущего примера:

<form name="myForm" id="myForm" method="get" action="#">
<input name="myButton" id="myButton" type="button" value="Нажмите здесь" />
</form>
<script type="text/javascript">
<!--
document.myForm.myButton.onclick = new Function("alert('Щекотно!')");
//-->
</script>

Здесь мы определяем анонимную функцию, содержащую программный код для программы обработки события, и присваиваем ее в качестве значения свойству onclick кнопки.

Вызов обработчика события

Заставить произойти некоторое событие для объекта так же просто, как и установить соответствующий событию обработчик. Для каждого события, которое может обработать объект, имеется метод с именем, соответствующим этому событию. Например, объект Button имеет метод click (), вызывающий выполнение программы обработчика onclick. Вот как просто вызвать событие, соответствующее щелчку на кнопке, для определенных в предыдущих двух примерах объектов:

document.myForm.myButton.click();

Программы обработки событий, очевидно, требуют гораздо более пространного обсуждения, чем то, которое представлено здесь. Основные браузеры используют весьма сложные модели событий, обеспечивающие разработчикам достаточную гибкость при решении задач обработки событий. Например, если необходимо определить одну и ту же программу обработки события для большого числа объектов, можно привязать эту программу только к объекту высшей иерархии, не связывая ее с каждым дочерним объектом по отдельности.


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


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

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


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







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