2010-11-02 21 views
1

J'utilise jQuery 1.4.2 et qTip 2.0 pré.Après qTip détruit qTip ne s'affiche pas à nouveau s'il est appelé

J'ai un qTip affichant avec un onClick d'un objet et se fermant avec un mouseleave. J'utilise le JS ci-dessous pour le détruire après le mouseleave. Lorsque je clique sur l'objet après le qTip ne s'affiche plus jamais. Si je supprime la fonction détruire, cela fonctionne comme prévu.

Je veux le détruire après le cacher afin qu'il ne soit pas stocké dans le DOM.

JS utilisé:

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

Qu'est-ce que je fais mal?

+0

le détruire? pourquoi ne pas le cacher à la place? – jcolebrand

+0

Parce que le cacher ne le retire pas du DOM. Je pourrais avoir des douzaines d'éléments qui peuvent afficher qTips sur eux et je ne veux pas que le DOM devienne "encombré" avec eux car l'utilisateur pourrait ne jamais l'ouvrir à nouveau. – sevens

Répondre

2

Puisque votre qtip est détruit, vous devrez le remettre en place. Je suppose que c'est pire que le DOM encombré.

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

Puisque vous ne pouvez pas vraiment faire cette définition récursive, vous devez sortir la fonction et l'objet d'initialisation JSON. Tout commence à ressembler à un hack méchant.

Je voterais pour ne pas détruire le qtip étant donné cette laideur.

+0

Merci pour la réponse, Dennis. – sevens