情况:
我的工具提示显示在我的页面上。打开我的 fancybox 就可以了。从那个 fancybox 中进行 ajax post 是有效的。 但我的工具提示在那个花哨的盒子里不起作用。在我的 ajax 帖子之后它们就不起作用了。
我尝试使用 fancybox 的回调重新初始化 TipTip。
编辑 标题变更 所以我找到了一种方法让它在发布后第二次悬停时运行,但不在第一次悬停时运行。
我还找到了一些解释here但它仍然没有解决我的问题。可能做错了。
编辑2 fancybox 中的 Tootip 仅使用 afterShow。
更改
在 $(function () { 中添加了此函数,以便它调用此函数而不是 initTipTip。
$(".tooltip").live('mouseover', function () {
$(this).tipTip();
});
我的函数代码,用于执行 post 操作并关闭我的 fancybox。
var reservation = MakeReservation(); var oldDateSplit = $("#resDate").val().split('/'); var newDateSplit = $("#dateEditReservation").val().split('/'); var oldDate = new Date(oldDateSplit[2], oldDateSplit[1] - 1, oldDateSplit[0]); var newDate = new Date(newDateSplit[2], newDateSplit[1] - 1, newDateSplit[0]); var time = $("#txtTime"); $.ajax({ url: ResolveUrl('~/Reservation/CheckSettings'), data: "JSONString=" + reservation + "&hasJavaScriptMethod=" + true }).done(function (data) { if (data.length == 0 || oldDate.getTime() == newDate.getTime()) { $.fancybox.close(); var id = $("#reservationId").val(); $("#reservationList").load(ResolveUrl('~/Reservation/reservationList',
function () { initTipTip(); })); $("#reservationDetail").load(ResolveUrl('~/Reservation/DetailInfo', function () { initTipTip(); }), { reservationId: id }); $("#reservationList").on("hover", " .tooltip", function () { $(this).tipTip(); }); } else { $(".errorDiv").removeClass("hidden"); $(".errorDiv").html(data); $(".btnReservations").removeAttr('disabled'); }
});
NEW $(".tooltip").live('mouseover', function () { $(this).tipTip();
});
}
仍与编辑前相同。
TipTip的代码初始化
function initTipTip () {
$(".tooltip").tipTip();
}
fancybox代码
function openFancy() {
$("a.inline").fancybox({
'type': 'ajax',
'afterShow': function () {
return initTipTip();
}
});
$("a.inlineBlockedDate").fancybox({
'type': 'ajax',
'ajax': { cache: false },
'afterShow': function () {
return initTipTip();
}
});
}
最佳答案
我找到了解决方案。
所以我在 $(function(){ 中使用了我的 .live,就像我的问题一样,但我在这里没有使用“.tooltip”,而是使用了表格本身。我在这里也使用了 initTipTip 而不是 $(this).tipTip() ; 所以这解决了TipTip中的Tooltip问题。
解释:这是因为 tooltip.live 仅在第一次悬停时触发,而不是在表格“刷新”时触发。现在您可以在刷新表时添加该事件 如果我错了请纠正我。
因此不需要任何其他 .tiptip 内容或 InitTipTip 然后在 $(function(){
$("#reservationList").live('mouseover', function () {
initTipTip();
});
我希望您的问题能够通过这个问题得到解决。
关于jquery-ui - 提示提示仅适用于 ajaxpost 之后的第二次悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11138441/