Что третий параметр (false) указывает в документе.addEventListener ("deviceready", OnDeviceReady, false); [дубликат]
этот вопрос уже есть ответ здесь:
что указывает третий параметр (false) в
document.addEventListener("deviceready",OnDeviceReady,false);
может ли кто-нибудь показать пример сценария, чтобы показать разницу
2 ответа:
это useCapture:
если
true
,useCapture
указывает, что пользователь желает начать захват. После инициирования захват, все события указанного тип будет отправлен в зарегистрированlistener
перед отправлено в любойEventTarget
s ниже это в дереве DOM. События, которые пузырясь вверх через дерево будет не запускать прослушиватель, назначенный для используйте захват. Смотрите DOM Уровень 3 события для детального объяснение.
это по историческим причинам. Когда система событий браузера была впервые разработана, было два противоречивых способа моделирования того, как она работала. Они назывались "захват событий" и "пузырение событий".
возьмите, например, этот HTML:
<html> <body> <a href="#">Content</a> </body> </html>
если событие (например, щелчок) происходит на
a
элемент, должны ли элементы предка знать? Это было широко признано, что они должны. Но вопрос был в каком порядке они должны быть уведомлены. Разработчики Microsoft и Netscape (это должно дать вам представление о quite как исторический мы говорим!) были разные мнения.одной из моделей был захват событий (защищенный разработчиками Netscape). Это уведомило
html
первый элемент и работал свой путь вниз по дереву:
html
body
a
другая модель была событие пузырится (защищается Microsoft девелоперов.) Это сначала уведомило целевой элемент и проложило свой путь вверх по дереву:
a
body
html
окончательный компромисс был в том, что он должен сделать и.
html
(фаза захвата)body
(фаза захвата)a
(фаза захвата)a
(пузырящейся фазы)body
(фаза буббинга)html
(пузырящейся фазы)Итак, событие работает свой путь вниз по дереву, а затем снова вверх.
это многословный способ добраться до
addEventListener
.addEventListener
прослушивает как фазу захвата, так и события фазы пузырьков. Третий параметр (называетсяuseCapture
в спецификации) позволяет программисту указать, какую фазу они хотят использовать.в современных браузерах это по умолчанию
false
. Вероятно, вы никогда не столкнетесь с обстоятельством, когда вы хотите использовать фазу захвата, тем более что Internet Explorer все еще не поддерживает ее. Но старые браузеры нуждаются вfalse
чтобы быть явным, поэтому он обычно предоставляется для обратной совместимости.