Tooltipster позволяет отображать не только простой текст, но и полноценный HTML-контент внутри всплывающих подсказок. Это открывает возможности для создания сложных интерактивных элементов, включая изображения, ссылки, списки и формы.
Для отображения HTML-контента необходимо использовать параметр
content вместе с опцией
contentAsHTML: true:
$('#myElement').tooltipster({
content: $('<div><strong>Заголовок:</strong> Подробное описание</div>'),
contentAsHTML: true
});
Особенности:
contentAsHTML: true обязателен для корректного
отображения HTML.Иногда содержимое подсказки зависит от состояния страницы или данных,
полученных через AJAX. Для таких случаев применяется функция
functionBefore:
$('#myElement').tooltipster({
contentAsHTML: true,
functionBefore: function(instance, helper){
if (!helper.origin.data('loaded')) {
$.get('/api/info', function(data){
instance.content($('<div>' + data + '</div>'));
helper.origin.data('loaded', true);
});
}
}
});
Ключевые моменты:
functionBefore выполняется перед отображением
подсказки.data('loaded', true) предотвращает
повторные запросы.HTML-контент может включать интерактивные элементы, например кнопки или формы:
$('#myButton').tooltipster({
content: $('<div><form><input type="text" placeholder="Введите имя"><button type="submit">Отправить</button></form></div>'),
contentAsHTML: true,
interactive: true
});
Особенности:
interactive: true позволяет взаимодействовать с
элементами внутри подсказки.interactive любые клики на элементы подсказки будут
закрывать её.Tooltipster наследует стили HTML-контента от страницы, но можно добавлять собственные классы:
$('#myElement').tooltipster({
content: $('<div class="custom-tooltip"><p>Пример <em>стилизированного</em> текста</p></div>'),
contentAsHTML: true,
theme: 'tooltipster-shadow'
});
Рекомендации:
tooltipster-shadow, tooltipster-light) для
базового оформления.$('#listElement').tooltipster({
content: $('<ul><li><i class="icon-ok"></i> Пункт 1</li><li><i class="icon-ok"></i> Пункт 2</li></ul>'),
contentAsHTML: true
});
$('#nestedElement').tooltipster({
content: $('<div><h4>Заголовок</h4><div><p>Подробный текст внутри блока</p></div></div>'),
contentAsHTML: true
});
$('#interactiveList').tooltipster({
content: $('<ul><li>Элемент <button>Действие</button></li></ul>'),
contentAsHTML: true,
interactive: true
});
Использование HTML-контента позволяет превратить Tooltipster из простого текстового инструмента в полноценный компонент пользовательского интерфейса, обеспечивая гибкость и интерактивность на любой странице.