Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2013, 23:20
Аспирант
Отправить личное сообщение для kichSman Посмотреть профиль Найти все сообщения от kichSman
 
Регистрация: 16.10.2009
Сообщений: 69

Проблема с фазой перехвата в addEventListener, вопрос для профи
Повторюсь, не работает именно перехват события, вместо него происходит всплытие.

Для примера, есть такой упрощенный код:
var cont    = document.querySelector('.cont'),
    btn     = document.querySelector('.btn');

init();//return 3

cont.addEventListener('DOMSubtreeModified', init, true);

btn.onclick = function(){
    var div = document.createElement('div');
    cont.appendChild(div);
}

function init(){
    alert(cont.children.length);
}


Проблема в том, что при клике, вначале перестраивается дерево, только после выполняется функция init(). Таким образом, init() после клика возвращает 4.

Кнопка с контейнером находятся на одном уровне (соседи), может быть проблема в этом? Но было бы странным, так как перехватывается именно изменение дерева контейнера, а не клик кнопки.

Chrome 24.0

В чем дело не пойму, может я на чем ошибся?
Заранее признателен.
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2013, 23:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А при чем тут фаза перехвата? DOMSubtreeModified возникает после изменения DOM-а, когда ваш div уже добавлен. У кого вы перехватить событие пытаетесь, у вас же всего один обработчик установлен.

К слову DOMSubtreeModified устарел, используйте MutationObserver
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 14.07.2011 23:13
Очень глупый вопрос для очистки совести (google analytics) shaltay Events/DOM/Window 0 04.05.2011 11:01
вопрос по модификации userjs для оперы Raz0r Opera, Safari и др. 0 25.03.2011 14:46
Вопрос по создании функции для события com-meta jQuery 2 01.10.2010 13:59
Проблема с меню для кнопки в Гриде progi2007 ExtJS 0 03.08.2009 13:16