Когда вы делаете это:
$(this).data('title',$(this).attr('title'));
$(this).removeAttr('title');
Вы перезаписываете то, что находится в ключе title
в данных каждый раз, включая после , когда вы отключили атрибут, вместо этого сделайте следующее:
if(!$.data(this, 'title')) {
$.data(this, 'title', $(this).attr('title'));
}
$(this).removeAttr('title');
В этой версии мы проверяем, заполнены ли данные, если они есть, то не перезаписывайте их пустым атрибутом title
.