Метод destroy предназначен для полного удаления
экземпляра Tooltipster с элемента. После его вызова плагин перестаёт
существовать: удаляются все привязанные события, очищаются внутренние
данные, а также удаляется созданная DOM-разметка тултипа.
Этот метод используется в ситуациях, когда тултип больше не нужен — например, при динамическом обновлении интерфейса, удалении элементов из DOM или повторной инициализации плагина с новыми параметрами.
$('.element').tooltipster('destroy');
Метод не принимает аргументов и применяется к уже инициализированному элементу.
destroyПосле вызова метода выполняется ряд внутренних операций:
mouseenter,
mouseleave, click и др.)$.dataВажно понимать, что метод полностью «разрушает» экземпляр, а не просто скрывает тултип.
hideМетод hide лишь скрывает тултип, сохраняя его в памяти и
позволяя повторно показать:
$('.element').tooltipster('hide');
В отличие от него, destroy:
// Инициализация
$('.element').tooltipster({
content: 'Подсказка'
});
// Удаление тултипа
$('.element').tooltipster('destroy');
После выполнения второй строки попытка вызвать любой метод Tooltipster на этом элементе приведёт к ошибке или игнорированию.
destroyПосле удаления тултипа допускается повторная инициализация:
$('.element').tooltipster('destroy');
$('.element').tooltipster({
content: 'Новая подсказка',
theme: 'tooltipster-light'
});
Это полезно при смене конфигурации, когда проще полностью пересоздать экземпляр, чем обновлять параметры.
В приложениях с динамическим контентом (SPA, AJAX-подгрузка) метод
destroy помогает избежать утечек памяти.
Пример:
function removeItem(selector) {
$(selector).tooltipster('destroy');
$(selector).remove();
}
Без вызова destroy остаются «висячие» обработчики и
ссылки на удалённые элементы.
Вызов destroy на неинициализированном элементе может
вызвать ошибки. Для безопасной работы применяется проверка:
if ($('.element').hasClass('tooltipstered')) {
$('.element').tooltipster('destroy');
}
Класс tooltipstered автоматически добавляется при
инициализации.
Метод можно применять сразу к коллекции:
$('.items').tooltipster('destroy');
Tooltipster корректно обработает каждый элемент.
При использовании делегирования:
$('body').tooltipster({
selector: '.dynamic-element'
});
Метод destroy должен вызываться на контейнере:
$('body').tooltipster('destroy');
Иначе делегированный механизм останется активным.
При использовании дополнительных модулей Tooltipster (например, анимаций или тем):
1. Повторный вызов методов после
destroy
$('.element').tooltipster('destroy');
$('.element').tooltipster('show'); // ошибка
После уничтожения экземпляр отсутствует.
2. Попытка удалить неинициализированный элемент
$('.element').tooltipster('destroy'); // может вызвать проблему
Решение — предварительная проверка.
3. Игнорирование destroy при удалении
DOM
$('.element').remove(); // плохо
Корректный вариант:
$('.element').tooltipster('destroy').remove();
При обновлении данных тултипа:
function updateTooltip(selector, newContent) {
var $el = $(selector);
if ($el.hasClass('tooltipstered')) {
$el.tooltipster('destroy');
}
$el.tooltipster({
content: newContent
});
}
Такой подход гарантирует чистую инициализацию без накопления старых данных.
При массовом удалении тултипов:
function clearAllTooltips() {
$('.tooltipstered').tooltipster('destroy');
}
Использование селектора .tooltipstered позволяет быстро
найти все активные экземпляры.
Если тултип открыт в момент вызова destroy:
Метод destroy является ключевым элементом жизненного
цикла Tooltipster:
init)show, hide)content, option)destroy)Корректное использование последнего этапа обеспечивает стабильность приложения и предотвращает утечки ресурсов.
destroyМетод выполняет роль финального шага в управлении Tooltipster и гарантирует корректное завершение работы плагина.