У меня есть таблица html с несколькими строками и столбцами.
<table>
<tr>
<td id="td1" class="my_tooltip"></td>
<td id="td2" class="my_tooltip"></td>
<td id="td3" class="my_tooltip"></td>
</tr>
</table>
Используя Jquery UI - Подсказка, каждый элемент td должен загружать разные данные всплывающей подсказки со следующими логами c:
$(".my_tooltip").tooltip({
content: function() {
//display loading icon gif
return $('#tooltip_loading').html();
},
open: function( event, ui ){
var elem = $(this);
var id = elem.attr('id');
var el_tooltip_id = 'tooltip_' + id;
var el_tooltip = '#' + el_tooltip_id;
// Logic for caching tooltip content
if ($(el_tooltip).html() === undefined) {
// Tooltip content not rendered yet - create a new one
$("<div/>").attr('id', el_tooltip_id).appendTo($('#tooltips_container'));
$(el_tooltip).load("backend_call_with_parameter&id=" + id, function() {
elem.tooltip('option','content',$(el_tooltip).html());
}
)
} else {
// Tooltip content found - display it
elem.tooltip('option','content',$(el_tooltip).html());
}
}
}
});
}
В основном это работает нормально для одиночных обратных вызовов.
Однако, когда пользователь быстро наводит указатель мыши на 2 или более элементов (вызывается больше обратных вызовов). Может быть задержка в выводе обратного вызова, и все элементы всплывающей подсказки, которые пользователь наводил мышкой, заполняются последним выводом обратного вызова.