Значение, хранящееся в переменной title
, является локальным для этой функции и теряется после выполнения функции в любом случае.
Одним из решений было бы сохранение предыдущего заголовка в элементе data()
.
var $th = $(this);
$th.data( 'prevTitle', $th.attr('title') );
, а затем доступ к нему, когда он вам нужен (предположительно, в следующей функции при наведении курсора).
var $th = $(this);
$th.attr('title', $th.data( 'prevTitle' ));
Вы можете вывести объявление переменной за пределы обеих функций.
var title;
$('a').hover(function(e){
title = $(this).attr('title');
$('<div id="tooltip">' + title + '</div>').css({"top" : e.pageY + 12, "left" : e.pageX + 12}).appendTo('body');
}, function(){
$th.attr('title', title);
$('#tooltip').remove();
});
... но я думаю, что использование data()
будет безопаснее.