1. Событие потока
Потоки событий описывают порядок, в котором события получены со страницы. Но т.е. предлагает пузырьковые потоки, в то время как Netscape Communicator предлагает потоки захвата.
JavaScript Event Stream
2. Пузырь событий
Событие начинает получать наиболее специфическим элементом (узел с самой глубокой иерархией гнездования), а затем распространяет вверх шаг шаг к менее конкретным узлам (документ). следующее:
Кода -копия выглядит следующим образом:
<html>
<голова>
<Title> Bubbing Event </title>
</head>
<тело>
<div id = "mydiv"> щелкните меня </div>
</body>
</html>
window.onload = function () {
var obj = document.getElementById ("test");
obj.onclick = function () {
предупреждение (this.tagname);
};
document.body.onclick = function () {
предупреждение (this.tagname);
};
document.documentelement.onclick = function () {
предупреждение (this.tagname);
};
document.onclick = function () {
оповещение ("документ");
};
window.onclick = function () {
оповещение («окно»);
}
};
Заказ о распространении событий: div-> body-> html-> документ
Уведомление:
Все современные браузеры поддерживают события пузырьков, но есть некоторые различия в реализации. Пузырьки событий в IE5.5 и более ранние версии будут прыгать прямо от тела к документу (HTML не выполняется). Firefox, Chrome и Safari Bubble события вплоть до окна.
3. Остановить пузыри события и отменить события по умолчанию
а Получите объект события
Кода -копия выглядит следующим образом:
функция getEvent (event) {
// window.event IE
// Событие не является
возвращение события || window.event;
}
B Функция: остановить пузырьки события
Кода -копия выглядит следующим образом:
функция stopbubble (e) {
// Если объект события предоставлен, это браузер, не связанный с ИМ
if (e && e.stoppropagation) {
// Поэтому он поддерживает метод stoppropagation () W3c
e.stoppropagation ();
} еще {
// В противном случае нам нужно использовать IE, чтобы отменить пузырь событий
window.event.cancelbubble = true;
}
}
в Заблокировать поведение браузера по умолчанию
Кода -копия выглядит следующим образом:
Функция stopdefault (e) {
// Блок Действия браузера по умолчанию (W3C)
if (e && e.preventdefault) {
e.preventdefault ();
} еще {
// Как заблокировать действие по умолчанию функции в IE
window.event.returnvalue = false;
}
вернуть ложь;
}