2

情况:

我的工具提示显示在我的页面上。打开我的fancybox作品。从那个fancybox 做ajax 帖子是可行的。但是我的工具提示在那个花式框中不起作用。在我发布 ajax 之后它们就不起作用了。

我尝试使用 fancybox 的回调重新初始化 TipTip。

编辑 标题更改所以我找到了一种方法让它在发布后的第二次悬停时运行,而不是在第一次悬停时运行。

我也在这里找到了一些解释,但它仍然没有解决我的问题。很可能是做错了。

EDIT 2 Tootip 在 fancybox 工作中仅使用 afterShow。

变化

在 $(function () { 中添加了这个,以便它调用这个函数而不是 initTipTip。

 $(".tooltip").live('mouseover', function () {
    $(this).tipTip();

});

我的函数的代码,它完成了发布的事情并关闭了我的幻想箱。

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',

函数 () { initTipTip(); })); $("#reservationDetail").load(ResolveUrl('~/Reservation/DetailInfo', function () { initTipTip(); }), { reservationId: id }); $("#reservationList").on("悬停", ".tooltip", function () { $(this).tipTip(); }); } else { $(".errorDiv").removeClass("hidden"); $(".errorDiv").html(数据); $(".btnReservations").removeAttr('disabled'); }

});

$(".tooltip").live('mouseover', function () { $(this).tipTip();

});

}

还是和修改前一样。

TipTip 的代码初始化

function initTipTip () {

   $(".tooltip").tipTip();


}

花式盒子的代码

function openFancy() {

    $("a.inline").fancybox({
        'type': 'ajax',
        'afterShow': function () {
             return initTipTip();
          }
    });

    $("a.inlineBlockedDate").fancybox({
        'type': 'ajax',
        'ajax': { cache: false },
        'afterShow': function () {
            return initTipTip();
        }
    });

}
4

1 回答 1

2

我找到了解决方案。

所以我在 $(function(){ 中使用了我的 .live ,就像在我的问题中一样,但我在这里没有使用“.tooltip”而是表格本身。我也在这里使用 initTipTip 而不是 $(this).tipTip(); 所以这个从 TipTip 解决工具提示。

说明:这是因为 tooltip.live 仅在第一次悬停时触发,而不是在表格“刷新”时触发。因此,现在您在表格的刷新时添加该事件 如果我在这里错了,请纠正我。

所以不需要任何其他 .tiptip 东西或 InitTipTip 然后在 $(function(){

 $("#reservationList").live('mouseover', function () {
    initTipTip();

});

我希望你的问题能通过这个问题得到解决。

于 2012-06-22T06:32:19.960 回答