Tooltipster, начиная с версии 4, требует jQuery 1.7 и выше, что обеспечивает совместимость с современными браузерами. Однако при использовании старых версий библиотек или проектов, построенных на устаревших фреймворках, необходимо учитывать следующие ограничения:
addEventListener и
CSS3-анимации, которых нет в старых движках.requestAnimationFrame и
classList.Tooltipster предоставляет возможность использовать старые версии (v3) и новые (v4+) параллельно, если проект содержит legacy-код. Основные различия между версиями:
| Функционал | v3 | v4+ |
|---|---|---|
| Инициализация | $(element).tooltipster(options); |
$(element).tooltipster(options); (но опции
отличаются) |
| Темы | CSS-классы напрямую | Через theme объект и
$.tooltipster.theme() |
| Callbacks | onBeforeShow, onAfterHide |
functionInit, functionReady,
functionAfter |
| Поддержка SVG | ограничена | полная |
Для проектов, где одновременно используются v3 и v4+, рекомендуется разделять области применения по классам:
$('.tooltip-v3').tooltipster({ theme: 'tooltipster-default' });
$('.tooltip-v4').tooltipster({
theme: ['tooltipster-default', 'tooltipster-shadow'],
animation: 'fade'
});
Некоторые опции изменились в API версии 4+, но есть способы сохранить совместимость:
delay — в v3 задается миллисекундами,
в v4+ также миллисекундами, но при использовании
animationDuration следует синхронизировать значения.position — в v3: строки
'top', 'bottom' и т.д.; в v4+ можно
использовать массив приоритетов, например:
['top', 'bottom', 'right']. Старый синтаксис
поддерживается, но массив дает большую гибкость.theme — v3: CSS-класс; v4+: объект или
массив объектов через $.tooltipster.theme(). Для поддержки
старого кода можно задать класс в массиве:
theme: ['tooltipster-default'].В версии 3 события привязывались напрямую через опции:
$(element).tooltipster({
onBeforeShow: function(origin, continueTooltip) { ... },
onAfterHide: function(origin) { ... }
});
В версии 4+ события заменены на функции functionInit,
functionReady, functionAfter:
$(element).tooltipster({
functionInit: function(instance, helper) { ... },
functionReady: function(instance, helper) { ... },
functionAfter: function(instance, helper) { ... }
});
Чтобы обеспечить обратную совместимость с v3-кодом, можно написать адаптер:
function adaptV3Callbacks(options) {
if (options.onBeforeShow) {
options.functionBefore = options.onBeforeShow;
}
if (options.onAfterHide) {
options.functionAfter = options.onAfterHide;
}
return options;
}
$('.tooltip').tooltipster(adaptV3Callbacks(oldOptions));
'fade',
'grow' или 'swing'.animation и
animationDuration. Для поддержки старого кода можно
использовать:var anim = oldOptions.animation || 'fade';
var duration = oldOptions.delay || 350;
$('.tooltip').tooltipster({
animation: anim,
animationDuration: duration
});
Tooltipster v4+ лучше интегрируется с современными фреймворками: Angular, React, Vue. Однако при использовании старого jQuery-кода стоит:
requestAnimationFrame,
classList) для IE9–IE11.Обратная совместимость Tooltipster обеспечивается через сочетание правильного выбора версии, адаптации опций и использования CSS-тем для старого кода. Это позволяет внедрять новые возможности библиотеки, не ломая существующую функциональность.