Проблема в том, что вы связываете событие наведения (технически mouseenter + mouseleave) только в случае наведения мыши для content
.Итак, в первый раз, нет привязанного события hover, во второй раз, так что ваша всплывающая подсказка показывает.
Честно говоря, я не совсем понимаю все, что вы делаете с .live (): -почему вы используете делегирование событий для элемента (контента), который существует и остается?- почему вы привязываете свои события (щелчок или зависание) только при наведении курсора мыши и отпускании мыши.Это просто не имеет никакого смысла ...
Вот как я бы просто сделал это.Полностью удалите вызов .live () и выполните привязку непосредственно при наведении или событии щелчка в соответствии с settings.showButtons
:
if (settings.showButtons == false) {
content.hover(function() {
$('#' + settings.toolTipId).remove();
content.attr({
title: ''
});
buildTipify();
positionTipify();
}, function() {
removeTipify();
});
} else {
content.click(function(el) {
// remove already existing tooltip
$('#' + settings.toolTipId).remove();
content.attr({
title: ''
});
buildTipify();
positionTipify();
// Click to close tooltip
$('#' + settings.closeTipBtn).click(function() {
removeTipify();
return false;
});
return false;
});
}
DEMO
Примечание: я немного изменил CSS для кнопки закрытия, потому что ваша кнопка была невидимой, поэтому я ее не видел.