Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
veb_otvety.docx
Скачиваний:
54
Добавлен:
18.03.2016
Размер:
161.8 Кб
Скачать

21.Динамические Web-технологии. Java Script, обработка событий

Практически все JavaScript-приложения выполняют те или иные действия, откликаясь на различные события. Событие - это сигнал от браузера о том, что что-то произошло. Есть множество самых различных событий:

  • DOM-события, которые инициируются элементами DOM. Например, событие click происходит при клике на элементе, а событие mouseover - когда указатель мыши появляется над элементом,

  • События окна. Например событие resize - при изменении размера окна браузера,

  • Другие события, например load, readystatechange. Они используются, скажем, в технологии AJAX.

Именно DOM-события связывают действия, происходящие в документе, с кодом JavaScript, тем самым обеспечивая динамический веб-интерфейс.

Назначение обработчиков

Для того, чтобы скрипт реагировал на событие - нужно назначить хотя бы одну функцию-обработчик. Обычно обработчики называют "on+имя события", например: onСlick.

Нужно сразу отметить, что JavaScript - однопоточный язык, поэтому обработчики всегда выполняются последовательно и в общем потоке. Это значит, что при установке обработчиков двух событий, которые возникают на элементе одновременно, например mouseover (мышь появилась над элементом) и mousemove (мышь двигается над элементом), их обработчики будут выполнены последовательно.

Существует несколько способов назначать обработчик на конкретное событие элемента:

1) Через атрибут HTML-тега

Обработчик события можно указать в виде inline-записи, прямо в атрибуте onСобытие.

Например, для обработки события click на кнопке input, можно назначить обработчик onСlick вот так:

<input id="b1" value="Нажми Меня" onclick="alert('Спасибо!');" type="button"/>

У этого способа установки обработчика есть и минусы. Как только обработчик начинает занимать больше одной строки - читабельность резко падает.

Можно назначить и функцию. Например, пусть при клике на кнопку input запускается функция count_rabbits(). Для этого запишем вызов функции в атрибут onClick.

2) Через свойство события

Самый близкий родственник описанного выше способа - установка функции-обработчика через свойство on cобытие соответствующего элемента. Этот способ тоже будет работать в любом браузере с поддержкой JavaScript.

Для этого нужно:

1. получить элемент

2. назначить обработчик свойству on+имя

Вот пример установки обработчика события click на элемент с id="myElement":

document.getElementById('myElement').onclick = function() {

alert('Спасибо')

}

<input id="myElement" type="button" value="Нажми меня"/>

Конечно, можно и не создавать анонимную функцию, а использовать любую уже готовую:

function doSomething() {

alert('Спасибо')

}

document.getElementById('button').onclick = doSomething;

Все вызовы типа getElementById должны запускаться после описания соответствующего HTML-узла, а лучше - после окончания загрузки страницы.

Описанная установка обработчика через свойство - очень популярный и простой способ.

У него есть один недостаток: на элемент можно повесить только один обработчик нужного события.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]