提示提示仅在ajax post后第二次悬停工作

时间:2012-06-21 12:43:51

标签: jquery-ui jquery

情况:

我的工具提示显示在我的页面上。打开我的fancybox工作。从那个fancybox做ajax帖子。 但我的工具提示不适用于那个fancybox。并且在我的ajax帖子之后它们不起作用。

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

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

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

编辑2 只有在显示后才能在fancybox工作中使用Tootip。

更改

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

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

});

我的功能代码,用于发布帖子并关闭我的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”)。负载(RESOLVEURL( '〜/预订/ DetailInfo',   function(){initTipTip(); }),{reservationId:id});               $(“#reservationList”)。on(“hover”,“。tooltip”,function(){$(this).tipTip();});           }           其他{               $( “errorDiv ”)。removeClass(“ 隐藏”)。               $( “errorDiv”)HTML(数据)。               $( “btnReservations。”)removeAttr( '禁用')。           }

});
     

          $(“。tooltip”)。live('mouseover',function(){           $(本).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();
        }
    });

}

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。

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

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

因此在$(function(){

中不需要任何其他.tiptip内容或InitTipTip
 $("#reservationList").live('mouseover', function () {
    initTipTip();

});

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