2010-11-02 36 views
1

我使用jQuery 1.4.2和qTip 2.0 pre。qTip销毁后qTip不会再显示,如果调用

我有一个qTip显示一个对象的onClick和关闭与mouseleave。我使用下面的JS在mouseleave后摧毁它。当我在qTip之后再次点击对象时再也不会显示。如果我删除销毁功能,那么它按预期工作。

我想隐藏后摧毁它,所以它不存储在DOM中。

JS使用:

events: { 
    hide: function(api, event) {      
    return $('.qtip').qtip('destroy'); 
    } 
} 

我在做什么错?

+0

摧毁它?你为什么不把它藏起来呢? – jcolebrand 2010-11-02 23:13:11

+0

因为隐藏它不会将其从DOM中删除。我可能有几十个元素可以在它们上显示qTips,并且我不希望DOM与它们“混乱”,因为用户可能永远不会再打开它。 – sevens 2010-11-02 23:26:34

回答

2

由于您的qtip被销毁,您必须重新设置它。我猜测这比混乱的DOM更糟糕。

return $('.qtip').qtip('destroy').qtip(recursive init params here - hide refs this function all over again) 

既然你不能真正做到这一点递归定义,你需要打出来的功能和JSON初始化对象。这一切都开始听起来像一个讨厌的黑客。

我会因为这个丑而不会摧毁qtip。

+0

感谢丹尼斯的回应。 – sevens 2010-11-04 03:28:39