HTML
<ul class="container" >
<li class="default-state">
some stuff
</li>
</ul>
SASS
.default-state
transition: all 0.2s ease 0s
width: 20px
.new-state
width: 100px
JS
$itemClone = $('li.default-state').clone();
$('ul').append($itemClone);
$itemClone.addClass('new-state');
Происходит следующее: div появляется в списке с его классом уже как '.new-state ', и никакой переход не применяется.
Что я нахожу абсурдным, когда я делаю это:
$itemClone = $('li.default-state').clone();
$('ul.container').append($itemClone);
setTimeout(function(){
$itemClone.addClass('new-state');
}, 1);
Это работает отлично.Но я чувствую, что использование .delay () или setTimeout в этом сценарии не требуется.Я знаю. append()
не имеет функции обратного вызова, есть ли другой метод jquery, который я мог бы добавить к этому, чтобы избежать добавления глупых задержек в 1 мс?
Я хочу сохранить все свои переходы / анимации в SASS, потому что ширины являются динамическими в медиа-запросах.