6

I'm using this plugin http://iamceege.github.io/tooltipster/.

It is possible know if a HTML already have the tooltipster initialized?

I wanna know because sometimes i need to change the text of the tooltip, and for do that, i need to destroy the tooltipster, change the attribute title of the HTML object, and initialize again. Like this:

$(this).tooltipster('destroy').attr("title", data.fields[i].value).tooltipster();
Ricardo Rocha
  • 14,612
  • 20
  • 74
  • 130

4 Answers4

11

You can use the API:

Check if the element already has tooltipster:

$(...).hasClass("tooltipstered");

$(...).tooltipster('content', myNewContent);
Praveen Kumar Purushothaman
  • 164,888
  • 24
  • 203
  • 252
6

Accepted solution does not work on SVG elements with tooltipster v4.1.6. This is how I solved it:

if ($.tooltipster.instances($(node)).length == 0) {
    //it is NOT tooltipstered
}
else {
    //it is tooltipstered
}
Gábor Szarka
  • 61
  • 1
  • 1
0

Use .hasClass to check if it has the tooltipstered class

var divToCheck = null; //FIXME: update to whatever query you use to get the div you're checking
if (divToCheck.hasClass('tooltipstered')) {
  //TODO: update your title
}
CDelaney
  • 1,238
  • 4
  • 19
  • 36
  • Please edit with more information. Code-only and "try this" answers are [discouraged](http://meta.stackexchange.com/questions/196187/is-try-this-bad-practice), because they contain no searchable content, and don't explain why someone should "try this". We make an effort here to be a resource for knowledge. – Rick Smith Aug 26 '15 at 16:19
0

You can check that it needs to be instantiated or simply enabled:

if (!$(id).hasClass("tooltipstered")) {
    $(id).tooltipster({
     position: 'top-left',
     contentAsHTML: 'true',
     theme: '.tooltipster-default',
     animation: 'grow'
    });
} else {
    $(id).tooltipster('enable');
}

Make sure that you checked it is instantiated before disabling it:

if ($(id).hasClass("tooltipstered")) {
   $(id).tooltipster('disable');
}
Stephane
  • 11,836
  • 25
  • 112
  • 175