Мне пришлось сломать это на две части, несмотря на то, что это было переключением. Это связано с тем, что я хочу, чтобы анимация отличалась для добавления и удаления классов.Более элегантный способ написать этот jQuery?
Когда активен класс Мне нужно, чтобы UL дождался завершения активного перехода CSS (0,2 секунды), а затем запустил jQuery.
При удалении активного класса Мне нужно сначала запустить анимацию ширины UL, а затем по завершении удалить активный класс.
Теперь из-за этого он чувствует себя грязным и дешевым. Есть ли простое и элегантное решение?
// toggle filters
$(".filter .toggle").on('click', function() {
if ($('.toggle').hasClass('active')) {
$('.filter ul').animate({
width: 'toggle'
}, 500, function() {
$('.filter .toggle').toggleClass('active');
});
} else {
$('.filter').find('.toggle').toggleClass('active').end()
.find('ul').delay(150).animate({
width: 'toggle'
}, 500);
}
});
Вот a fiddle моей дилеммы.
Возможно, лучше всего подходит для http://codereview.stackexchange.com/? – Nix