При работе с библиотекой Tooltipster одной из наиболее частых причин некорректного отображения подсказок является неправильная инициализация. Tooltipster требует строго соблюдения порядка и структуры кода, а также корректного выбора селекторов.
$('.tooltip').tooltipster();
Если данный вызов выполняется до полной загрузки DOM, то элементы с
классом .tooltip ещё не существуют на странице. В
результате Tooltipster не найдёт ни одного элемента и подсказки не будут
отображаться.
Правильный вариант:
$(document).ready(function() {
$('.tooltip').tooltipster();
});
Или современный способ:
$(function() {
$('.tooltip').tooltipster();
});
Важно: Tooltipster использует jQuery, поэтому
попытка инициализировать его до загрузки jQuery приведёт к ошибке
Uncaught ReferenceError: $ is not defined.
Если в инициализации указан селектор, который не соответствует элементам на странице, подсказки не создаются.
$('.wrong-class').tooltipster(); // Элементов нет → ничего не работает
Совет: проверять селектор в консоли с помощью
console.log($('.wrong-class')). Если вывод пустой —
селектор неверный.
$('.tooltip').tooltipster();
$('.tooltip').tooltipster();
Повторный вызов .tooltipster() на уже инициализированном
элементе может привести к конфликтам настроек или к ошибкам в
консоли.
Решение: использовать проверку через метод
tooltipster('instance') перед повторной инициализацией:
$('.tooltip').each(function() {
if (!$(this).tooltipster('instance')) {
$(this).tooltipster();
}
});
Tooltipster принимает объект с опциями, строго соблюдая структуру.
$('.tooltip').tooltipster({
animation: 'fade',
theme: 'tooltipster-light',
position: 'bottom-right' // Некорректное значение
});
position не поддерживает значение
'bottom-right'. Доступные варианты: 'top',
'top-left', 'top-right',
'bottom', 'bottom-left',
'bottom-right', 'left',
'right'.
Правильный пример:
$('.tooltip').tooltipster({
animation: 'fade',
theme: 'tooltipster-light',
side: 'bottom-right'
});
Иногда подсказки не отображаются из-за того, что CSS Tooltipster не подключён или переопределён стилями страницы.
<link rel="stylesheet" href="tooltipster.bundle.min.css">
Если этот файл отсутствует или подключён после основного CSS, может нарушаться визуальное отображение подсказок.
Совет: подключать CSS Tooltipster перед
пользовательскими стилями, чтобы избежать конфликтов с
z-index и позиционированием.
$('#container').append('<span class="tooltip" title="Новая подсказка">Hover me</span>');
$('.tooltip').tooltipster();
При такой последовательности новые элементы, добавленные динамически после первой инициализации, не получат подсказки.
Решение: инициализировать Tooltipster после
добавления элемента или использовать делегирование с помощью
tooltipster('content') и tooltipster('open')
для динамических элементов.
Tooltipster версии 4 и выше требует jQuery 1.7+. Использование более
старой версии приводит к тому, что методы .tooltipster()
просто не существуют.
<script src="https://code.jquery.com/jquery-1.6.4.min.js"></script> <!-- Ошибка -->
<script src="tooltipster.bundle.min.js"></script>
Исправление:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="tooltipster.bundle.min.js"></script>
Tooltipster может конфликтовать с другими библиотеками, которые изменяют DOM элементы, на которых вызывается инициализация. Например, плагины кастомных селектов или модальные окна.
Практика: инициализировать Tooltipster после полной
загрузки всех сторонних плагинов или использовать событие
onReady этих плагинов для корректного вызова.
$(document).ready() или
$() сокращение)..tooltipster() повторно без проверки
instance.Эти правила минимизируют большинство ошибок при работе с Tooltipster и обеспечивают корректное отображение подсказок на странице.