Событие removeComplete в библиотеке
Isotope предназначено для отслеживания момента, когда
элементы, удалённые с помощью методов фильтрации или программных команд,
полностью исчезли из DOM и анимация их удаления завершена. Это событие
особенно полезно для синхронизации действий после динамического удаления
элементов, например, обновления интерфейса, подсчёта оставшихся
элементов или вызова дополнительных анимаций.
remove()).var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
layoutMode: 'masonry'
});
$grid.on('removeComplete', function(event, removedItems) {
console.log('Удаление завершено');
console.log('Удалённые элементы:', removedItems);
});
Пояснения:
$grid.on('removeComplete', callback) — подписка на
событие removeComplete.event — объект события.removedItems — массив элементов, которые были удалены.
Этот массив содержит DOM-узлы элементов, что позволяет с ними работать
после удаления.// Инициализация сетки
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
layoutMode: 'fitRows'
});
// Подписка на событие
$grid.on('removeComplete', function(event, removedItems) {
removedItems.forEach(function(item) {
console.log('Элемент удалён:', item);
});
// Например, обновляем счётчик оставшихся элементов
var remaining = $grid.data('isotope').filteredItems.length;
console.log('Осталось элементов:', remaining);
});
// Удаление элементов по классу
$grid.isotope('remove', $('.grid-item.remove-me')).isotope('layout');
Особенности примера:
remove() удаляет выбранные элементы из сетки и
запускает анимацию их исчезновения.removeComplete.isotope('layout') обновляет расположение оставшихся
элементов.Событие removeComplete часто применяется в случаях,
когда интерфейс должен реагировать на динамическое изменение DOM:
Обновление счётчиков элементов: Позволяет корректно подсчитать, сколько элементов осталось после удаления.
Загрузка новых элементов: Можно инициировать подгрузку или рендеринг новых элементов только после того, как предыдущие полностью удалены.
Запуск сторонних анимаций: После удаления элементов можно плавно анимировать оставшиеся элементы или отображать уведомления.
$grid.on('removeComplete', function(event, removedItems) {
$('.notification').fadeIn(300).text('Элементы успешно удалены');
});
removedItems — это реальные DOM-элементы, которые уже
удалены из сетки, но могут быть использованы для любых последующих
операций.remove(), чтобы гарантированно получить
уведомление.removeComplete с layoutComplete — это
позволяет контролировать как удаление, так и перестановку оставшихся
элементов.filter() и сортировки
sortBy событие помогает корректно синхронизировать
интерфейс и обновлять состояния элементов.Событие removeComplete является ключевым инструментом
для управления удалением элементов в Isotope. Оно
обеспечивает надёжную точку синхронизации после анимации удаления,
позволяя создавать динамичные, отзывчивые и интерактивные интерфейсы без
риска несогласованности данных или визуальных артефактов.