Метод instance

Метод instance является одним из ключевых инструментов управления экземплярами Tooltipster на странице. Он позволяет получить объект текущего тултипа и работать с его внутренними методами и свойствами напрямую, что открывает возможности для тонкой настройки поведения и динамического управления содержимым.


Получение экземпляра тултипа

Синтаксис вызова:

var instance = $('#element').tooltipster('instance');
  • #element — селектор элемента, на котором инициализирован Tooltipster.
  • Метод возвращает объект экземпляра, через который доступны все внутренние функции тултипа.

Важно: метод instance может быть вызван только после инициализации тултипа. Если попытаться вызвать его до $('#element').tooltipster({...}), будет возвращено undefined.


Основные свойства и методы экземпляра

Экземпляр, возвращаемый instance, содержит множество методов, позволяющих управлять тултипом:

1. content(newContent)

  • Используется для получения или изменения содержимого тултипа.
  • Если вызвать без аргументов, возвращается текущее содержимое.
  • Если передан аргумент, содержимое тултипа обновляется.
var instance = $('#element').tooltipster('instance');

// Получение текущего содержимого
var currentContent = instance.content();

// Изменение содержимого
instance.content('Новое содержимое тултипа');

2. open()

Открывает тултип программно. Метод особенно полезен для динамических событий, например, при наведении на другой элемент или при клике.

instance.open();
  • Работает независимо от trigger при инициализации тултипа.
  • Можно комбинировать с delay и animation для более плавного открытия.

3. close()

Закрывает тултип. Может использоваться в сочетании с open() для управления видимостью:

instance.close();
  • Поддерживает callback события functionAfter, что позволяет выполнить дополнительные действия после закрытия тултипа.

4. reposition()

Принудительно перерасполагает тултип относительно элемента. Особенно полезно, когда содержимое элемента или страницы изменяется динамически.

instance.reposition();
  • Без параметров метод пересчитывает позиции исходя из текущих координат.
  • Можно вызвать после изменения размеров тултипа или родительского контейнера.

5. destroy()

Удаляет тултип с элемента полностью:

instance.destroy();
  • После вызова destroy экземпляр теряет связь с элементом.
  • Все события, связанные с тултипом, удаляются.
  • Элемент возвращается к исходному состоянию без тултипа.

6. enable() и disable()

Методы управления состоянием тултипа:

instance.disable(); // Отключает тултип
instance.enable();  // Включает тултип
  • Отключение не удаляет тултип, но делает его невидимым для событий.
  • Включение возвращает тултип в активное состояние.

7. status()

Позволяет узнать текущее состояние тултипа:

var currentStatus = instance.status(); // "open", "closed" или "destroyed"
  • Удобно для логики, когда требуется контролировать последовательность открытия/закрытия тултипа.

Примеры динамического управления с помощью instance

Обновление содержимого по событию

$('#element').tooltipster({
    content: 'Изначальный текст'
});

$('#button').on('click', function() {
    var tipInstance = $('#element').tooltipster('instance');
    tipInstance.content('Обновлённое содержимое');
    tipInstance.reposition(); // пересчитать позицию
    tipInstance.open();
});

Полное удаление и восстановление тултипа

var tipInstance = $('#element').tooltipster('instance');

tipInstance.destroy(); // полностью удалить

// Через некоторое время создать новый тултип
$('#element').tooltipster({
    content: 'Новый тултип после удаления'
});

Важные нюансы

  • Метод instance всегда возвращает один экземпляр для конкретного элемента. Если на одном элементе инициализировано несколько тултипов (редкий кейс), доступен только первый.
  • Любые изменения через экземпляр действуют немедленно, в отличие от опций при инициализации, которые применяются только при создании.
  • Экземпляр можно хранить в переменной для многократного использования, что повышает производительность при частом обращении к тултипу.

Метод instance открывает полное управление тултипами Tooltipster, позволяя динамически изменять контент, управлять состояниями, программно открывать и закрывать тултипы, а также безопасно уничтожать их при необходимости. Его использование — ключевой элемент для создания интерактивных и адаптивных интерфейсов.