I use bootstrap 3, and none of these worked for me without bugs. Destroying the tooltip via .tooltip('destroy')
and recreating it in the same function .tooltip({...})
would result in the tooltip no longer working. It only worked if the recreation call was done later, after the destroy call had completed it's work asynchronously (hence why the immediate recreation was clobbered).
The suggestions to destroy the internal data .data('tooltip',false)
did not work. Firstly, with bootstrap 3, it would be data('bs.tooltip, false)
and when that was called, if the tooltip was currently displayed, it would leak it and leave it displayed permanently. The new tooltip would both display and hide over top of it.
My final solution was:
$x.tooltip('hide');
$x.data('bs.tooltip', false);
$x.tooltip({ ... }) // recreate it
Note that also changing the title via the .attr('title', '...')
and similar solutions and calling .tooltip('fixupTitle')
worked - but discarded the placement
option and likely also the other options, and made a tooltip that was placed at the top the element rather than on the right, as it originally was. It might even have had some of the other bugs listed above, seen in other variations of this solution, but I didn't look much further.