Показать сообщение отдельно
  #1 (permalink)  
Старый 05.02.2013, 01: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

В чем дело не пойму, может я на чем ошибся?
Заранее признателен.
Ответить с цитированием