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