Библиотека Tooltipster создаёт всплывающие подсказки на основе элементов DOM. Для управления подсказками после их инициализации необходимо получать доступ к конкретным экземплярам, чтобы изменять содержимое, настройки или управлять жизненным циклом tooltip’а.
Инициализация выполняется стандартным вызовом:
$('.tooltip-element').tooltipster({
content: 'Пример подсказки',
theme: 'tooltipster-shadow',
animation: 'fade',
delay: 200
});
После этого каждый элемент, на котором применён Tooltipster, содержит
внутренний объект-экземпляр. Для получения конкретного экземпляра
используется метод
tooltipster('instance').
var instance = $('.tooltip-element').tooltipster('instance');
instance теперь предоставляет доступ к методам и
свойствам конкретного tooltip’а.
Экземпляр Tooltipster позволяет:
content([newContent]) – получить
или установить содержимое подсказки.
instance.content(); // возвращает текущее содержимое
instance.content('Новое содержимое'); // заменяет на новоеopen() и
close() – открыть или закрыть подсказку
программно.
instance.open();
instance.close();reposition() – пересчитать позицию
подсказки, полезно при изменении размеров окна или контента.
instance.reposition();destroy() – полностью удалить
tooltip с элемента и освободить ресурсы.
instance.destroy();option(optionName, [value]) –
получить или изменить любую опцию после инициализации.
instance.option('animation'); // получить текущую анимацию
instance.option('animation', 'grow'); // изменить анимацию на "grow"Если tooltip установлен на нескольких элементах одновременно, метод
instance() применяется к конкретному
элементу через выборку. Прямое получение всех экземпляров не
предусмотрено, поэтому необходимо перебирать элементы:
$('.tooltip-element').each(function() {
var instance = $(this).tooltipster('instance');
console.log(instance.content());
});
Использование .each() гарантирует, что
для каждого DOM-элемента создаётся и используется собственный
экземпляр.
Экземпляр позволяет подключать обработчики событий на конкретный tooltip:
instance.on('open', function(instance) {
console.log('Подсказка открыта:', instance);
});
instance.on('close', function(instance) {
console.log('Подсказка закрыта:', instance);
});
Доступ к событиям через экземпляр удобен для динамического управления поведением подсказки без изменения глобальных настроек Tooltipster.
var instance = $('#dynamic-tooltip').tooltipster({
content: 'Первоначальный текст',
delay: 100
}).tooltipster('instance');
$('#update-button').on('click', function() {
instance.content('Обновлённый текст');
instance.open();
});
В этом примере содержимое tooltip’а обновляется по клику, при этом управление полностью осуществляется через экземпляр, что исключает необходимость пересоздания подсказки.
tooltipster('instance') является
единственным официальным способом получить объект конкретного
tooltip’а..each(), чтобы гарантировать работу с нужным
DOM-элементом.Экземпляры являются ключевым элементом работы с Tooltipster, позволяя реализовать сложное взаимодействие и динамическое обновление интерфейса.