• Почему transitionend не срабатывает и что конкретно происходит при изменении в DOM дереве?

    @alekcena
    Нелинейный наставник
    гипотеза: при изменении DOM дерева срабатывает апишное событие, которые помещается в очередь событий с наивысшим приоритетом. Соответственно, после завершения основного потока оно срабатывает и производит некий "ремаппинг" всего DOM дерева, включая обработчики и свойства.

    Это 100% не так. Я даже не понял что вы написали.

    Тк как у нас 2 действия связанных с отрисовкой они оптимизируются. Именно по этому все действия с визуализацией делают как можно ближе. В вашем случае. Вы делаете перестановку дом ноды. Это вызывает перерисовку элементов. Она видит "Ага ещё и класс меняем -> сразу его меняем -> а потом рисует дом". Тк как она рисует уже с применёнными эффектами - событие не срабатывает.

    Почему с таймером работает. Думаю становится понятно.
    Рисуем дом->Таймер независимо срабатывает и навешивает класс->Рисуем ещё раз. Событие происходит.
    Ответ написан
    7 комментариев