Для использования Tooltipster необходимо подключить библиотеку и
стили. В HTML-документе подключение производится через теги
<link> и <script>:
<link rel="stylesheet" href="tooltipster.bundle.min.css" />
<script src="jquery.min.js"></script>
<script src="tooltipster.bundle.min.js"></script>
Инициализация плагина производится через вызов метода
.tooltipster() на выбранных элементах:
$('.tooltip').tooltipster({
content: 'Пример текста тултипа',
theme: 'tooltipster-default'
});
Ключевые моменты инициализации:
content – задаёт содержимое тултипа. Может быть
строкой, jQuery-объектом или функцией, возвращающей содержимое.theme – подключаемая тема оформления. Tooltipster
предоставляет набор стандартных тем, а также позволяет создавать
кастомные.$(document).ready().Tooltipster строится вокруг объектно-ориентированной архитектуры, что позволяет расширять функционал через плагины. Основные элементы:
Каждый плагин регистрируется через API Tooltipster, что позволяет централизованно управлять всеми расширениями и их приоритетом.
Регистрация плагина выполняется с помощью метода
$.tooltipster.plugin. Синтаксис выглядит следующим
образом:
$.tooltipster.plugin('myPlugin', {
// Версия плагина
version: '1.0.0',
// Инициализация плагина на каждом экземпляре тултипа
instance: function(instance, helper) {
return {
// Объект с методами плагина
start: function() {
console.log('Плагин активирован');
},
stop: function() {
console.log('Плагин отключён');
}
};
}
});
Обязательные элементы при регистрации:
version – строка, указывающая версию
плагина.
instance – функция, принимающая два параметра:
instance – объект тултипа, к которому привязан
плагин.helper – вспомогательный объект с утилитами, например,
helper.origin для доступа к DOM-элементу.Методы, возвращаемые из функции instance, позволяют
управлять жизненным циклом плагина: запускать его, останавливать и
выполнять кастомные действия.
После регистрации плагина он может быть подключён при инициализации
тултипа через параметр plugins:
$('.tooltip').tooltipster({
content: 'Тултип с плагином',
plugins: ['myPlugin']
});
Особенности подключения:
plugins.Tooltipster поддерживает множество событий: ready,
before, after, open,
close. Плагины могут подписываться на эти события через
объект instance:
$.tooltipster.plugin('customLogger', {
version: '1.0.0',
instance: function(instance, helper) {
return {
start: function() {
instance.on('open', function() {
console.log('Тултип открыт');
});
instance.on('close', function() {
console.log('Тултип закрыт');
});
}
};
}
});
Важные моменты:
on привязывает плагин к событиям
конкретного экземпляра тултипа.При разработке сложного плагина рекомендуется:
start и stop для чёткой
активации и деактивации функционала.helper.origin для прямого доступа к
DOM-элементу тултипа и его родителя.instance через
instance.data(key, value) для предотвращения конфликтов
между плагинами.Пример комплексного плагина с анимацией и подсчётом кликов:
$.tooltipster.plugin('clickCounter', {
version: '1.0.0',
instance: function(instance, helper) {
let count = 0;
return {
start: function() {
$(helper.origin).on('click', function() {
count++;
instance.content('Клики: ' + count);
});
},
stop: function() {
$(helper.origin).off('click');
}
};
}
});
Этот пример демонстрирует интеграцию логики плагина с состоянием тултипа и динамическим изменением содержимого.
Tooltipster позволяет добавлять и удалять плагины после инициализации через методы экземпляра:
let instance = $('.tooltip').tooltipster().tooltipster('instance');
instance.plugins.add('myPlugin'); // добавить плагин
instance.plugins.remove('myPlugin'); // удалить плагин
Это особенно полезно, если требуется динамически изменять функционал тултипа в зависимости от условий страницы или пользовательских действий.
instance.options() или
собственный объект конфигурации.stop для корректного
отключения плагина и очистки обработчиков событий.helper.origin и
instance.content() для минимизации прямого вмешательства в
структуру тултипа.Эта структура позволяет создавать масштабируемые и легко поддерживаемые плагины Tooltipster, полностью используя объектно-ориентированную архитектуру и возможности событийной системы библиотеки.