Для полноценного управления поведением всплывающих подсказок необходимо правильно инициализировать Tooltipster на элементах DOM. Базовая инициализация выглядит следующим образом:
$('.tooltip-element').tooltipster({
content: 'Пример подсказки',
trigger: 'custom',
interactive: true
});
Ключевые моменты:
trigger: 'custom' – отключает стандартные триггеры
(hover, click), позволяя управлять открытием и
закрытием подсказки программно.interactive: true – позволяет пользователю
взаимодействовать с контентом подсказки без её мгновенного
закрытия.Tooltipster предоставляет набор методов, которые можно вызвать через jQuery-интерфейс.
open() – открывает подсказку.close() – закрывает подсказку.toggle() – переключает состояние между открытым и
закрытым.var instance = $('.tooltip-element').tooltipster();
// Открытие подсказки
instance.tooltipster('open');
// Закрытие подсказки
instance.tooltipster('close');
// Переключение состояния
instance.tooltipster('toggle');
Содержимое подсказки может быть изменено в любой момент:
instance.tooltipster('content', 'Новый контент подсказки');
Дополнительно можно передавать объект jQuery или HTML-разметку для сложных подсказок:
var newContent = $('<div><strong>Заголовок</strong><p>Описание</p></div>');
instance.tooltipster('content', newContent);
Метод status() возвращает строку, описывающую текущее
состояние подсказки:
'closed' – подсказка закрыта.'open' – подсказка открыта.'appearing' / 'disappearing' – анимации
открытия и закрытия в процессе.if (instance.tooltipster('status') === 'open') {
console.log('Подсказка отображается');
}
Tooltipster позволяет гибко настраивать анимацию и задержки через
параметры при инициализации или метод option().
instance.tooltipster('option', 'animation', 'fade');
instance.tooltipster('option', 'delay', 300);
animation – тип анимации: 'fade',
'grow', 'swing', 'slide'.delay – время в миллисекундах перед открытием
подсказки.Можно одновременно менять несколько опций:
instance.tooltipster('option', {
theme: 'tooltipster-light',
side: 'top'
});
Для реализации закрытия подсказки при клике вне неё используется
событие document:
$(document).on('click', function(e) {
if (!$(e.target).closest('.tooltip-element').length &&
instance.tooltipster('status') === 'open') {
instance.tooltipster('close');
}
});
Это особенно полезно для интерактивных подсказок, содержащих формы или кнопки.
Tooltipster поддерживает динамическую подгрузку контента через функцию, возвращающую промис:
instance.tooltipster({
content: 'Загрузка...',
functionBefore: function(instance, helper) {
if (!helper.origin.data('loaded')) {
$.get('/tooltip-content')
.done(function(data) {
instance.content(data);
helper.origin.data('loaded', true);
});
}
}
});
Особенности:
functionBefore вызывается перед открытием
подсказки.Для управления несколькими подсказками применяется селектор jQuery с циклом:
$('.tooltip-element').each(function() {
var inst = $(this).tooltipster();
$(this).on('click', function() {
inst.tooltipster('toggle');
});
});
Таким образом можно создавать индивидуальное управление для каждого элемента.
Tooltipster корректно взаимодействует с динамическими элементами, например, при использовании фреймворков типа Vue или React. Главное — инициализировать подсказку после рендеринга элемента:
// В методе mounted компонента Vue
this.$nextTick(() => {
$(this.$refs.tooltipElement).tooltipster({
content: 'Подсказка Vue'
});
});
Это предотвращает ошибки, связанные с отсутствием DOM-элементов во время инициализации.
Tooltipster предоставляет события:
show / shown – при открытии
подсказки.hide / hidden – при закрытии.before / after – перед или после
анимации.instance.on('shown', function() {
console.log('Подсказка отображена полностью');
});
Эти события позволяют синхронизировать действия с другими частями интерфейса.
Все методы Tooltipster возвращают jQuery-объект, что позволяет выстраивать цепочки вызовов:
instance.tooltipster('open').tooltipster('content', 'Обновленный контент').tooltipster('option', 'animation', 'grow');
Это облегчает создание комплексного поведения без многократного обращения к одной и той же переменной.
Приведенные подходы дают полный контроль над жизненным циклом подсказок в Tooltipster, позволяя создавать интерактивные, динамичные и управляемые через код элементы интерфейса.