jquery-ui - 提示提示仅适用于 ajaxpost 之后的第二次悬停

标签 jquery-ui jquery

情况:

我的工具提示显示在我的页面上。打开我的 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/

相关文章:

jquery - 动态分配 jQuery 按钮部分失败

javascript - 如何在点击时将每个可选择的 li 设置为不同的颜色? (JQuery 用户界面)

javascript - 由于@font-face,jQuery 计算出了错误的高度

javascript - 循环遍历表格并根据选中的复选框更改 <tr> 背景

javascript - 无法在 Accordion 内交换 div

javascript - jqgrid viewGridRow对话框大跨度和图标

javascript - jQuery UI Draggable - 超越绝对定位的拖动

javascript - 检查页面是否有 jQuery、jQuery.ui 和 jQuery.ui.css 的最佳方法是什么

javascript - jQuery 在 Chrome 和 IE 中对数组输出进行不需要的排序(FF 工作正常)

javascript - HTML 表单 : Programmatically Disable Remaining Checked Boxes in HTML Form