web-dev-qa-db-fra.com

jQuery supprimer plugin de l'élément

J'ai quelque chose de similaire au code suivant:

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

Existe-t-il un moyen d'éliminer un plugin d'un élément autre que d'utiliser $($.plugin).remove()? Je ne sais pas si j'ai la terminologie correcte mais que je veux essentiellement réinitialiser l'élément à son état d'origine.

Merci

28
Steven Cheng

Vous devriez savoir quel est le plugin afin d'inverser ses effets. De nombreux 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 pourrez peut-être simplement faire un clone (sans données et événements) et remplacer Ou même - nbind Tous les gestionnaires d'événements, mais cela ne va pas toujours être efficace. Il serait très dépendant du plugin en question.

12
tvanfosson

Voici ma solution sale:

$('#myWidget,#myWidget *').unbind().removeData();
20
devside

À moins que le plugin fournit cette fonctionnalité, cela ne peut probablement pas être fait cela facilement. Vous devrez étudier ce que le plugin effectue et définisse spécifiquement ces choses - ou stockez un clone de l'élément non branché pour la remplacer par la suite.

4
Matchu