Головна |
http://javascript.ru/tutorial/events/intro#naznachenie-obrabotchikov
У мову JavaScript 1.2 доданий новий об'єкт Event. Він містить властивості, що описують якась подія. Кожен раз, коли відбувається будь-яка подія, об'єкт Event передається відповідною програмою обробки."Всплиття" - подія піднімається з самих "глибоких" (дочірніх) елементів в поданні DOM, до самих "верхнім" (кореневих), як бульбашка повітря в воді.
Якщо якийсь оброблювач хоче зупинити спливання і не випускати подія далі вгору - це робить наступний код:
element.onclick = function (event) {event = event || window.event // кросбраузерну if (event.stopPropagation) {// Варіант стандарту W3C: event.stopPropagation ()} else {// Варіант Internet Explorer: event.cancelBubble = true}}"Перехоплення" - батьківські елементи можуть обробити подія раніше, ніж безпосередня мета події, як би "перехоплюючи" обробку. Такий порядок був запропонований Netscape і ніколи не підтримувався в Internet Explorer.
Рішення від W3C об'єднує обидві моделі: перехоплення і спливання в одну універсальну. При здійсненні дії, спочатку подія перехоплюється, поки не досягне кінцевого елемента, потім спливає. Якщо в якості третьої параметра функції addEventListener передати значення true, то подія буде спрацьовувати на фазі захоплення, якщо false - то після закінчення захоплення, на фазі спливання.
Таким чином, розробник сам вирішує, коли повинен спрацьовувати обробник події - при перехопленні або при спливанні.
Повернення return false з обробника події зупиняє спливання і запобігає дії браузера за замовчуванням.
На якому елементі спрацювало подія. В Internet Explorer у об'єкта window.event для цього є властивість srcElement, в інших браузерах, які працюють за рекомендаціями W3C, для цього використовується event.target
Type. Тип події можна отримати, використовуючи кросбраузерності властивість type об'єкта подія.
This. При спливанні - подія по черзі викликає обробники на елементі-тригері і далі, вгору по документу. У міру спливання, поточним елементом кожного разу стає новий. Інакше кажучи. поточний елемент - це той, до якого в даний момент "допливло" подія.
Др. св-ва: Натиснута кнопка миші, координати миші (щодо вікна, щодо документа)
об'єкт event дозволяє отримати доступ до інформації про подію
event містить наступний набір властивостей:
src element - перший елемент, в якому виникло це подія
cancel bubble - заборонити подія
return value - скасування дії за замовчуванням
type - тип події click mouse move
об'єкт event доступний тільки в обробнику подій
function hadlEnvent () {
switch (event.type) {
case "click";
alert ('click'); break;
case "drag";
alert ('mouse drag'); break;
}
}
document
document.drag = event ...
Є ще властивості. Наприклад: координати мишки, код клавіші клавіші клавіатури.
Завжди є дії за умовчанням. Завжди можна замінити на індивідуальне завдання. Робиться за допомогою об'єкта EVENT
Події об'єкта window | Клієнтські сценарії. Зв'язування сценаріїв.
Мова HTML. Форми і елементи введення. | Мова HTML. Таблиці. x 2 | Каскадні таблиці стилів. Глобальні таблиці стилів.