2010-07-08 1 views
26

J'ai quelque chose de similaire au code suivant:jquery supprimer plug-in de l'élément

$(a).click(function() { 
    $(element).plugin(); 
}); 

est-il un moyen de supprimer un plug-in d'un élément autre que l'utilisation $($.plugin).remove()? Je ne sais pas si j'ai la terminologie correcte, mais fondamentalement, je veux réinitialiser l'élément à son état d'origine.

Merci

+0

Je suis assez sûr que cela va complètement dépendre du plug-in. Des choses comme la boîte de dialogue jQuery UI enveloppent toutes sortes d'ordures autour de votre élément et le déplacent à un endroit différent dans le DOM, donc une fonction "défaire" serait assez difficile. – Pointy

+0

ok, merci! btw, avait un coup d'oeil rapide à votre blog http://whatthepointy.blogspot.com/ et a dit qu'il ne peut pas être trouvé ... –

Répondre

12

Vous devez savoir ce que fait le plugin pour inverser ses effets. Beaucoup de plugins ajoutent des éléments supplémentaires au DOM, des gestionnaires aux éléments, etc. Si le plugin ne crée aucun élément supplémentaire, vous pouvez simplement faire un clone (sans données et événements) et remplacer ou même simplement unbind tous les gestionnaires d'événements , mais ça ne va pas toujours être efficace. Ce serait très dépendant du plugin en question.

+1

Oui, je pense que le consensus général est d'abord regarder le plugin. Cheers –

4

À moins que le plug-in fournit cette fonctionnalité, il ne peut probablement pas se faire facilement. Vous devrez étudier ce que le plugin fait, et spécifiquement annuler ces choses - ou stocker un clone de l'élément non-branché pour le remplacer par plus tard.

+0

merci, je vais jeter un oeil à ce que le plugin fait plus en détail .. –

15

Voici ma solution sale:

$('#myWidget,#myWidget *').unbind().removeData(); 
+2

Cela a fonctionné parfaitement .. –

+0

Solution parfaite! Il me manquait la fonction removeData(). –

+0

mais n'oubliez pas que removeData() supprimera tout attribut de données attaché à l'élément. Si vous savez quels sont les accessoires de données auxquels il s'attache, il est préférable de les supprimer à la place. –