.hover()
, при прохождении одной функции она запускается на оба mouseenter
и mouseleave
, обрабатывая переменную, так как: *
tooltipptext = $(this).attr("title");
запускается снова после того, как $(this).attr("title", "");
уже запущено. Вместо этого передайте обе функции в .hover()
, например:
var tooltipptext;
$(".infoimg").hover(function() {
tooltipptext = $(this).attr("title");
showToolTip(event, tooltipptext);
$(this).attr("title", "");
}, function() {
$("#bubble_tooltip").hide();
$(this).attr("title", tooltipptext);
});
Или, поскольку вы никогда не видите атрибут заголовка при наведении, сохраните его один раз так:
$(".infoimg").each(function() {
var title = $(this).attr("title");
$(this).data('title', title).attr('title','');
}).hover(function() {
showToolTip(event, $.data(this, 'title'));
}, function() {
$("#bubble_tooltip").hide();
});
Это дает дополнительное преимущество работы с любым количеством изображений:)