Порядок событий
Предположим, что другой элемент вложен в один элемент, и у обоих есть обработчик событий Onclick. Если пользователь нажимает на элемент 2, запускаются события щелчка элемента 1 и элемента 2. Но какое событие запускается в первую очередь? Какая функция обработчика событий будет выполнена в первую очередь? Другими словами, какой порядок в каких событиях происходят? Как показано на рисунке ниже, когда нажата область элемента SPAN, будут запускаются три Click Event, но каков порядок?
<div onclick = "func1"> <p onclick = "func2"> <span onclick = "" func3> </span> </p> </div>
Две модели
Netscape и Microsoft имеют два совершенно разных метода обработки этого события:
• Netscape выступает, что события будут происходить от самого внешнего слоя до самого специфического элемента, и эта последовательность событий называется типом захвата
• Microsoft сохраняет события от внутреннего элемента, а затем распространяется вверх. Эта последовательность событий называется пузырьковым типом
Порядок этих двух событий совершенно противоположный. Браузер Explorer поддерживает только события пузырьков, как Mozilla, Opera7, так и Konqueror. Старая опера и ICAB не поддерживают ни другого
W3C
Любое событие, которое происходит в модели события W3C, сначала попадает на стадию захвата, пока целевой элемент не будет достигнут, а затем выйдет на стадию пузырьков.
Для обычной веб -разработки вы можете выбрать, связать ли функцию обработчика событий на стадии захвата или на стадии пузырьков. Это достигается с помощью метода addeventListener (). Если параметр использования этой функции является истинной, функция связана на стадии захвата, и наоборот, функция связана на стадии пузырька.
element.addeventListener (событие, функция, использование)
Остановить пузырьки
Во время нормального развития, если вы хотите предотвратить распространение событий, вы можете сделать это с помощью одного метода.
В модели Microsoft вы должны установить свойство CancelBubble этого события на True
window.event.cancelbubble = true
В модели W3C вы должны вызвать метод StopPropagation () события
e.stoppropagation ()
Призыв этих методов предотвратит распространение всех пузырьков. Решение поперечного браузера:
Функция dosomething (e) {if (! e) {var e = window.event; e.cancelbubble = true; } if (e.stoppropagation) {e.stoppropagation (); }}Приведенная выше статья подробно понимает пузырьки событий и захват событий,-это весь контент, которым я поделился с вами. Я надеюсь, что это может дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.