As Andre noted, the mouseleave event does not fire, so the tooltip is not deleted.
To do the same thing as hiding the tooltip, you can simply fire the mouseleave event manually ( Updated JSFiddle ).
$(this).trigger('mouseleave');
Until you explained what happens when you click an element in your case, I would guess it because the element was deleted and the mouseleave event never fired. In this case, you should write an event listener and start the mouseleave element manually:
$('#anchor').click(function(){ $(this).trigger('mouseleave'); }
source share