【问题标题】:Jquery Tools Tooltip not going awayJquery Tools Tooltip 不会消失
【发布时间】:2011-04-14 19:07:13
【问题描述】:

我有一个工具提示,它会出现在任何带有标题的东西上:

$("[title!=]:not(IFRAME)").tooltip();

我有一个可以添加或删除的人员列表,您单击位于该人员上方的删除按钮,单击它以将该人员换成另一个人。

当您单击“删除”按钮时,会显示工具提示,因为该项目具有 .但是一旦你换掉那个人,工具提示就不会消失。

我很确定原因是,一旦删除了该人,您就没有鼠标移出,因此工具提示永远不会消失。

我试过这个:

$('.remove-player-large a').click(function() {
  $("[title!=]:not(IFRAME)").tooltip().hide();
});

但没有运气 有关如何解决此问题的任何建议?

这有意义吗?

【问题讨论】:

    标签: jquery tooltip jquery-tools


    【解决方案1】:

    您可以使用 hideTooltip() 函数隐藏工具提示。

    var $tooltip = null;
    $(function(){
        $tooltip = $("input[type='text']").tooltip({
            // place tooltip on the right edge
            position: "center right",
            // a little tweaking of the position
            offset: [-2, 10],
            // use the built-in fadeIn/fadeOut effect
            effect: "fade",
            // custom opacity setting
            opacity: 0.6
        });
        $("#close").click(function(){
            hideTooltip();
        });
    });
    function hideTooltip()
    {
        if($tooltip)
        {
            $tooltip.each(function(index){
                var $this = $(this).data('tooltip');
                if($this.isShown(true))
                    $this.hide();
            });
        }
    }
    

    【讨论】:

      【解决方案2】:

      jqueryUi tooltip ipad 有问题,如果我们单击页面上的任何位置,工具提示不会消失,所以这个简单的解决方案对我有用,并且适用于 ios 6、ios 7、ios 8 设备

       $("#selector ").tooltip( "close" );

      you can use these method

      【讨论】:

        【解决方案3】:

        连同链接一起删除工具提示元素。

        $('.remove-player-large a').click(function() {
          $('.tooltip').remove();//remove the tool tip element
        });
        

        如果不知道tooltip元素的类名,则需要使用firebug进行检查,也可以在tooltip源码中找到

        【讨论】:

        • 我知道这是一个老问题,但我在 Google 搜索中找到了它。这不起作用,因为它也会删除页面上所有其他元素的工具提示。
        【解决方案4】:

        我遇到了同样的问题,并且我看到这里没有有效的解决方案,对上面提出的问题的正确答案是使用 JQuery 工具 api 获取正确的工具提示元素并在删除所有者之前将其删除工具提示。

        var t = $('#object_to_remove').data('tooltip');
        if(t) t = t.getTip();
        if(t) t.remove();
        $('#object_to_remove').remove();
        

        if(t) 片段是必需的,这样如果工具提示未附加或尚未调用,则不会出错。

        由于它们是延迟添加到 DOM 的,t.getTip 可能会返回 undefined(这意味着工具提示数据仍驻留在 title 属性中,因此无需进行清理,因为它将与拥有的 DOM 元素一起删除)。

        【讨论】:

          【解决方案5】:

          我认为最干净的方法是调用这个命令:

          $("#your-element").tooltip('destroy');
          

          简而言之,它会删除您当前的工具提示功能,#your-element 会恢复正常状态。

          这是官方文档:https://api.jqueryui.com/tooltip/#method-destroy

          【讨论】:

            【解决方案6】:

            就在您删除此人之前,向其发送.mouseout() 事件。这将触发工具提示的正常鼠标移出行为,并且应该隐藏工具提示(如果它真的在鼠标移出时消失)

            【讨论】:

            • 它没有,它只是隐藏它。所以这可能会导致内存泄漏。
            【解决方案7】:

            jqueryui tooltipsiPads 的一些相关问题得到了优雅的回答 here

            【讨论】:

              猜你喜欢
              • 2016-05-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-09-14
              • 1970-01-01
              • 1970-01-01
              • 2011-02-06
              • 2013-08-09
              相关资源
              最近更新 更多