Comment détruire tinymce complètement?
Je suis en train de travailler sur quelque chose comme ceci:
Sur une page web, il y a un article enveloppé dans un DIV, un bouton Éditer. Lorsqu'un utilisateur cliquez sur le bouton Modifier, insérer un textarea via javascript, charger le code html de la DIV dans le textarea, de la charge et de l'initiale de tinymce. Lorsque l'utilisateur clique sur le bouton Enregistrer, sauvegarder et mettre à jour l'article via ajax, et de détruire tinymce complètement.
Le problème est que, je n'ai pas réussi à détruire tinymce. Voici la doc de la méthode destroy.
Je suis à l'aide de jQuery version de tinymce, la dernière V3.2.2
Voici un exemple de code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="../js/tinymce/jquery.tinymce.js"></script>
<script type="text/javascript">
$(function() {
$('button.load').click(loadTinyMCE);
$('button.destory').click(destoryTinyMCE);
});
function loadTinyMCE() {
$('textarea').tinymce({
script_url : '../js/tinymce/tiny_mce.js'
});
}
function destoryTinyMCE() {
$('textarea').tinymce().destroy();
}
</script>
</head>
<body>
<textarea>abc</textarea>
<button type="button" class="load">Load TinyMCE</button>
<button type="button" class="destory">Destory TinyMCE</button>
</body>
</html>
1. Pouvez-vous montrer votre code pour le cas où vous ne parvenez pas à détruire TinyMCE complètement? 2. Ce qui vous fait penser qu'il est juste caché?
Il n'est pas juste caché. Je viens de modifier le post. Désolé pour ça.
Votre code vous indique que vous êtes en détruisant TinyMCE. Pourquoi pensez-vous qu'il n'est pas détruit? Comment définissez-vous "échec": par quelque chose de vous voir présent dans le DOM encore, ou peut-être quelque chose de visuellement sur l'INTERFACE utilisateur?
Il ne se passe rien en appelant destroy(). L'éditeur tinymce toujours là. $('textarea').de tinymce().remove() fonctionne comme prévu! Ne sais pas ce que destroy() est-ce?
Il n'est pas juste caché. Je viens de modifier le post. Désolé pour ça.
Votre code vous indique que vous êtes en détruisant TinyMCE. Pourquoi pensez-vous qu'il n'est pas détruit? Comment définissez-vous "échec": par quelque chose de vous voir présent dans le DOM encore, ou peut-être quelque chose de visuellement sur l'INTERFACE utilisateur?
Il ne se passe rien en appelant destroy(). L'éditeur tinymce toujours là. $('textarea').de tinymce().remove() fonctionne comme prévu! Ne sais pas ce que destroy() est-ce?
OriginalL'auteur powerboy | 2010-04-18
Vous devez vous connecter pour publier un commentaire.
Utiliser remove() à la place.
OriginalL'auteur Ethan
Vous avez déjà une pratique acceptée de la solution avec remove() voici donc une réponse à ce sujet destroy().
Détruire des méthodes (parfois appelée dispose) sont courantes dans de nombreux langages de programmation afin de permettre le nettoyage des ressources utilisées par une instance de quelque chose. Détruire ce qui est conventionnellement un pur concept de mémoire (c'est à dire le non-visuel). La méthode destroy est souvent différente de celle d'une orientée objet destructeur par la méthode de durée de vie, que détruire est destiné à être autorisé à être appelé explicitement par le programmeur, afin de nettoyer la mémoire et des ressources avant la finale destructeur de pistes ou avant le garbage collector vient le long (dans les deux cas, plus tôt, de sorte que vous pouvez libérer des choses quand vous n'avez pas besoin de plus, au lieu de laisser ces ressources seront utilisées jusqu'à la fin du programme). Parfois, le destructeur méthode contiennent naturellement un appel à la méthode destroy, pour s'assurer que les ressources sont enfin nettoyée, et c'est ainsi que le programmeur n'a pas à s'inquiéter de ne pas l'appeler parce qu'il finira par être appelé automatiquement.
Souvent le détruire code de la méthode corps est fourni par le programmeur de l'application d'un comportement particulier (annulé à partir de la classe de base/objet dans certaines langues). Cela signifie que l'appel de détruire, sans avoir fourni une mise en œuvre pour souvent ne rien faire, un code vide de corps. Bien sûr, pour TinyMCE, il aura mis en place son propre détruire des méthodes de manière appropriée.
La TinyMCE documentation ne promets pas de changements visuels à détruire, seulement que l'instance va être supprimés de la mémoire de la fuite des possibilités. C'est dans la droite ligne de détruire des méthodes couramment le faire.
C'est aussi pourquoi TinyMCE fournit une méthode remove() pour modifier visuellement les choses, parce que destroy() n'est pas prévu de réaliser exactement le même but.
Dans le but de détruire TinyMCE complètement, vous pourriez question de supprimer() pour visual nettoyage, suivie par dispose() pour un nettoyage de la mémoire; cependant, les méthodes de mise en œuvre spécifique et je ne suis pas sûr comment TinyMCE allait réagir.
OriginalL'auteur John K
salut à tous, mon problème est résolu par l'utilisation de ce
Activer un ou plusieurs TinyMCE instances à l'aide de:
$('.des rédacteurs).de tinymce('toggle');
Ou supprimer des instances entièrement à l'aide d':
$('.des rédacteurs).de tinymce ("supprimer");
de
http://mktgdept.com/jquery-tinymce-plugin
OriginalL'auteur Gurpreet
À détruire ' un élément jquery, utilisez
$(node).remove()
. Si cela ne fonctionne pas, un exemple de code va nous aider à comprendre/répondre à votre question mieux.OriginalL'auteur Jared Forsyth