0

使用以下代码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 中删除,有时它只是消失并再次出现,我得到了很多打开的工具提示:

替代文字

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

更新:我将 jQuery 降级为 qTip 推荐的1.3.2 。我不再得到保持打开状态的工具提示,但现在还有另一个问题:

替代文字

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

更新:使用

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

在代码的第一行,问题就解决了。但这导致了另一个问题,我在这里描述的另一个问题qTip 工具提示没有出现, jQuery。似乎进退两难^:D

4

2 回答 2

2

我想你想要的是

$('a.ppname[rel]').qtip({
   content : {stuff},
   style : {stuff},
   position: {stuff},
   show: 'mouseover',
   hide: 'mouseout'
})
于 2010-12-10T14:06:14.893 回答
1

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

$('a.ppname[rel]').qtip({
   content : {stuff},
   style : {stuff},
   position: {stuff},
   show: 'mouseover',
   hide: 'mouseout',
   onHide: function() { $(this).qtip('destroy'); }
});
于 2010-12-10T14:22:43.040 回答