工具提示(qTip)没有关闭,jQuery

时间:2010-12-10 13:33:51

标签: javascript jquery javascript-events tooltip qtip

以下代码qTip适用于我并生成工具提示:

$('a.ppname[rel]').live('mouseover', function() {
    $(this).qtip( {
     content : {
      url : $(this).attr('rel')
     },
     position : {
      corner : {
       tooltip : 'leftBottom',
       target : 'rightBottom'
      }
     },
     style : {
      border : {
       width : 5,
       radius : 10
      },
      padding : 10,
      textAlign : 'center',
      tip : true, // Give it a speech bubble tip with
      // automatic corner detection
      name : 'cream' // Style it according to the preset
     // 'cream' style
     }

    });
  });
 });

但是qTip并没有从dom中移除,有时它只是消失并再次出现,我得到了很多打开的工具提示:

alt text

我看着dom,qtip似乎没有被删除但只是设置隐形。我需要一些简单的逻辑来破坏工具提示。例如。如果a.ppname集中注意力并且不再集中注意力,我就可以摧毁它。但是在javascript中会是什么样子?任何想法?

更新:我将jQuery降级为1.3.2 recommended for qTip。我没有得到保持打开的工具提示,但现在还有另一个问题:

alt text

当我将鼠标悬停在下一个项目时,现在我无法删除的工具提示似乎出现了。请提供一些如何销毁工具提示的建议。

更新:使用

$('a.ppname[rel]').each(function(){

在代码的第一行解决了问题。但这导致了另一个问题,我在这里描述了qTip tooltip does not appear, jQuery。似乎是一个两难的困境^:D

2 个答案:

答案 0 :(得分:2)

我认为你想要的是

$('a.ppname[rel]').qtip({
   content : {stuff},
   style : {stuff},
   position: {stuff},
   show: 'mouseover',
   hide: 'mouseout'
})

答案 1 :(得分:1)

您可以在隐藏工具提示时通过调用destroy方法从DOM中删除工具提示。试试这个(感谢Matt为我复制和修改的例子):

$('a.ppname[rel]').qtip({
   content : {stuff},
   style : {stuff},
   position: {stuff},
   show: 'mouseover',
   hide: 'mouseout',
   onHide: function() { $(this).qtip('destroy'); }
});