2010-12-13 4 views
3

J'ai le contrôle textarea et j'utilise la bibliothèque TinyMCE pour ajouter la fonctionnalité d'édition de contenu à cette textarea.Affichage des contrôles TinyMCE uniquement lorsque l'utilisateur modifie le contenu

Initialement, lorsque la page est chargée, la zone de texte n'aura aucun contrôle de formatage supplémentaire. Mais lorsque l'utilisateur clique sur la zone de texte , les contrôles tinyMCE doivent être ajoutés à la zone de texte.

j'ai pu y arriver en utilisant ce code JQuery:

$("textarea").focus(function(){ 
    $(this).tinymce(); 
}); 

Mais le problème commence quand je veux cacher le contrôle lorsque l'utilisateur se déplace hors de la zone de texte. Je ne pouvais pas trouver un moyen d'associer un gestionnaire d'événements blur à cette zone de texte car tinyMCE remplace ma zone de texte par un iframe et le contenu formaté à l'intérieur.

Y a-t-il un moyen d'afficher le contrôle tinyMCE uniquement lorsque l'utilisateur modifie le contenu et le masque lorsque l'utilisateur quitte la zone d'édition?

Répondre

2

Vous devez appeler $(this).tinymce(); une seule fois (la première fois que la zone de texte est mise au point). La deuxième fois, il obtient le focus vous devez appeler

tinyMCE.get(editorid).show(); 

To hide the tinymce et montrer la zone de texte, vous devez appeler

tinyMCE.get(editorid).hide(); 

Vous pouvez appeler cela quand à savoir lorsque le document parent obtient le focus.

$(document).focus(function(){ 
    tinyMCE.get(editorid).hide(); 
}); 
+0

Comment obtenir l'identifiant de l'éditeur? Est-ce l'ID que je donne à ma zone de texte? – Veera

+0

et je reçois une erreur JS disant "tinymce n'est pas défini" – Veera

+1

désolé, il est corrigé maintenant – Thariama

Questions connexes