Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: погружение и всплытие событий работает странно
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » погружение и всплытие событий работает странно

Страниц (1): [1]
 

1. Contr - 24 Июня, 2014 - 08:35:17 - перейти к сообщению
Что в фф, что в хроме следующий код дает:
CODE (javascript):
скопировать код в буфер обмена
  1. document.addEventListener("keydown", a, true);
  2. function a(e){
  3.   console.log("Документ погружение");
  4. }
  5. document.addEventListener("keydown", b, false);
  6. function b(e){
  7.   console.log("Документ всплытие");
  8. }
  9. var body = document.getElementsByTagName('body')[0];
  10. body.addEventListener("keydown", c, true);
  11. function c(e){
  12.   console.log("боди погружение");
  13. }
  14. body.addEventListener("keydown", d, false);
  15. function d(e){
  16.   console.log("боди всплытие");
  17. }

Дает такие результаты (будем считать, что <input> вложен в <div>, далее идет<body>, а потом document)
При фокусе на инпут и нажатии клавиши:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Документ погружение
  2. боди погружение
  3. боди всплытие
  4. Документ всплытие
Здесь все по фен-шую.
При фокусе на <div>:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Документ погружение
  2. боди всплытие
  3. боди погружение
  4. Документ всплытие

Почему события на Боди срабатывают в другом порядке? Не понял
(Добавление)
Сам спросил, сам ответ нашел
https://developer[dot]mozilla[dot]org/en[dot][dot][dot]addEventListener
Цитата:
Note: For event listeners attached to the event target; the event is in the target phase, rather than capturing and bubbling phases. Events in the target phase will trigger all listeners on an element regardless of the useCapture parameter.

На целевом элементе (что вызвал срабатывание) функции вызываются без соблюдения порядка

 

Powered by ExBB FM 1.0 RC1