2012-09-20 1 views
8

Lorsqu'une zone de texte spécifique est copiée, je veux qu'elle soit masquée APRÈS avoir été copiée. J'ai le code suivant:Sur copie masquer textarea (JQuery)

$('#textarea20').on('copy', function() {  
    $('#textarea20').hide(); 
}); 

Comme vous le voyez cela cacher le navigateur va essayer de copier un champ qui est caché il copiera rien dans le presse papier. Pouvez-vous penser à quelque chose que je peux gérer cela? Toute aide est appréciée.

Répondre

5

Le report de hide() de quelques millisecondes devrait fonctionner.

Demo: http://jsfiddle.net/techfoobar/uxmRs/

code:

$('textarea').on('copy', function() {  
    setTimeout(function() { 
     $('textarea').hide(); 
    }, 10); 
}); 
+1

+1 - vaudraient peut-être en utilisant une référence à 'this' dans la fonction juste au cas où il existe plusieurs' textareas' sur la page (je sais que l'OP a utilisé un identifiant dans son sélecteur et cela ne s'applique pas ici mais cela peut aider d'autres personnes qui rencontrent cet exemple) – billyonecan

+1

Oui, c'est vrai. De plus, sauvegarder la référence signifierait aussi que jQuery n'a pas besoin de traverser le DOM pour trouver le ou les éléments à l'intérieur de la fonction setTimeout. – techfoobar

+0

Parfait. Merci pour votre aide et votre réponse rapide! j'apprécie vraiment cela –