【问题标题】:jquerytools tooltip on ajax issue关于ajax问题的jquerytools工具提示
【发布时间】:2014-03-08 05:24:08
【问题描述】:

好的,我每 15 秒进行一次 ajax 调用,这是第一次在进行 ajax 调用时“禁用”工具提示,我修复了这个运行函数并再次调用启动工具提示的函数。

问题是.. 如果在进行 ajax 调用时有一个工具提示“打开”,则该项目的这个并且只有这个工具提示被永久销毁,其余的工作正常。直到 ajax 运行时您再次处于打开的工具提示中。

我该如何解决这个问题..

这是我的代码

  function notifications() {
        $.ajax(
                {
                    type: "POST",
                    //data: dataparam,
                    url: "<?php echo $notifurl;?>",
                    success: function(msg)
                        {
                            if(msg !="")
                            {
                                $("#ajaxnotif").empty().html(msg);
                                $('.tooltip').remove();
                                 ttp();
                                //$("#suggestDiv").show();
                            }
                            else
                            {
                                $("#ajaxnotif").empty().html(msg); 
                                $('.tooltip').remove();
                                ttp();
                                //$("#suggestDiv").hide();
                            }
                        }
                });
        }


$(document).ready(notifications);
window.setInterval(function(){
  notifications();
}, 15000);

var $tooltip = null;
    var $tooltip2 = null;
var $tooltip3 = null;
    function ttp() {

    $tooltip = $('.marcleidnot[title]').tooltip({
    delay:0,
    slideInSpeed: 300,
    slideOutSpeed: 200,
    bounce: false,
    /*bounce: false*/
    relative: false, // <-- Adding this should sort you out
    slideOffset: 5,
   /* effect: 'slide',
    direction: 'down',
    slideInSpeed: 300,
    slideOutSpeed: 200,*/
    position: 'top center'
});


$tooltip2 = $('.fav[title]').tooltip({  
    delay:100,
    slideInSpeed: 300,
    slideOutSpeed: 300,
    /*bounce: false,*/
    relative: false, // <-- Adding this should sort you out
   effect: 'slide',
    direction: 'down',
    /*slideInSpeed: 300,
    slideOutSpeed: 200,*/
    position: 'top center',
    offset: [10, -2]
});

 $tooltip3 = $('.nofav[title]').tooltip({
    delay:100,
    slideInSpeed: 300,
    slideOutSpeed: 300,
    /*bounce: true,*/
    relative: false, // <-- Adding this should sort you out
    effect: 'slide',
    direction: 'down',
    /*slideInSpeed: 300,
    slideOutSpeed: 200,*/
    position: 'top center',
    offset: [10, -2]
});

    }


$('body').click(function() {
  $('.tooltip').remove();//remove the tool tip element
});

【问题讨论】:

    标签: javascript jquery ajax jquery-tools


    【解决方案1】:

    我认为您没有正确使用工具提示 api。所以不是

    $('.tooltip').remove();
    

    $tooltip.tooltip("destroy");
    $tooltip2.tooltip("destroy");
    $tooltip3.tooltip("destroy");
    

    【讨论】:

    • 不,也许不是 jquerytools 格式? ..我得到“未捕获的TypeError:无法调用null的方法'工具提示'”
    • 在所有工具提示都初始化后尝试调用 ajax。
    • 我刚刚尝试过,我认为这也是问题所在,但即使这样我也遇到了同样的错误
    【解决方案2】:

    感谢user3352495,我弄清楚了问题所在,然后我弄清楚了

    $tooltip = $('.marcleidnot[title]').tooltip("destroy");
    $tooltip2 = $('.fav[title]').tooltip("destroy");
    $tooltip3 = $('.nofav[title]').tooltip("destroy");
    

    到目前为止,Wich 工作正常

    其实我发现我只需要删除这个!

    只是重新启动功能做

    ttp();在 ajax 中解决这个问题:D

    【讨论】:

      【解决方案3】:

      问题在于,Jquery Tools 中的工具提示默认情况下不会创建.tooptip 元素,而是仅在工具提示第一次出现时创建它们。因此,在您的情况下,当 $tooltip 出现时,只有一个 .tooltip 元素与之关联,另外两个尚未出现。

      要全面删除所有工具提示,您可以使用this plugin。如果.tooltip 元素已经存在,它将删除它,如果不存在,则取消绑定鼠标事件。添加插件后,您可以简单地调用$tooltip.tooltip('remove')

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-17
        • 2023-01-26
        • 2021-06-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多