Проверьте, не назначена ли компоненту уже всплывающая подсказка инструментов jquery.

У меня есть компонент, которому я назначаю всплывающую подсказку при первом mouseenter (своего рода ленивое назначение всплывающей подсказки компоненту)

Я использую ленивый подход, так как есть много компонентов с всплывающими подсказками, и я не хочу предварительно назначать всплывающие подсказки для всех из них.

$(document).delegate(".tooltipable", "mouseenter", function () {
    $(this).tooltip(... options ...);
    $(this).tooltip().show(); // The tooltip will not appear on first `mouseenter` so I have to explicitly show it here
});

Это прекрасно работает. Я хотел бы улучшить его, чтобы всплывающая подсказка не создавалась для каждого mouseenter, проверяя, был ли уже создан tooltip для этого компонента.

Как это сделать?

Заранее спасибо!


person Ben    schedule 23.01.2012    source источник


Ответы (1)


Вы можете попробовать что-то вроде этого.

$(document).delegate(".tooltipable", "mouseenter", function () {
    var $this = $(this);
    if(!$this.data("tooltipset")){
       $(this).tooltip(... options ...)
       .data("tooltipset", true);
    }
    $(this).tooltip().show(); // The tooltip will not appear on first `mouseenter` so I have to explicitly show it here
});
person ShankarSangoli    schedule 23.01.2012
comment
Спасибо, использовал аналогичный подход, чтобы убедиться, что всплывающая подсказка уже инициализирована, поэтому я могу безопасно уничтожить ее, когда это необходимо. - person Gorgsenegger; 14.05.2013