jQuery événement pour html changement dans un élément div?
Longue histoire courte, je modifiable <div>
et je veux effacer la mise en forme lorsque quelqu'un colle le quelque chose. Depuis jQuery n'a aucun contrôle sur le presse-papiers et je ne veux pas entrer dans la compatibilité inter-navigateur, j'ai pensé à écouter pour un événement qui s'exécute lorsque les changements de contenu.
J'ai essayé $("#mydiv").change()
mais évidemment cela ne fonctionne que sur les champs de texte et les textareas(?), donc, il y a une façon de le faire?
Je voudrais aussi accepter des solutions de remplacement, et toute solution je choisis d'utiliser sera marqué comme réponse correcte.
Merci!
OriginalL'auteur Hubro | 2010-09-15
Vous devez vous connecter pour publier un commentaire.
Vous pouvez faire usage de
.keyup()
pour la copie et le collage. Le clic droit suivi en sélectionnant coller dans le menu contextuel ne semble pas enregistrer un clic, de sorte.cliquez sur()
ne fonctionne pas.... au lieu d'utilisersetInterval()
de vérifier toutes les X secondes pour la capture de droite, cliquez sur les pâtes.Vous ne savez pas si vous pouvez lier
.keyup()
à la div (si la div est peut recevoir le focus sur tous les navigateurs), mais tous les keyups remonter vers le document, afin de$(document)
le sera toujours.jsFiddle Exemple
Cela fonctionne avec le collage.... il saisit ctr, maj, etc touches. (si vous l'essayez w ctr-v et vous relâchez une touche après l'autre, puis de garder un œil sur l'état, puisque l'état ne montrent
changed
après la publication de la première clé etsame
après la sortie de la seconde.... comme il se doit).Remarque: je n'aime pas avoir à la fois un
.keyup()
gestionnaire et unsetInterval
, car cela garantit que la réaction est instantanée pour les touches.... même s'il y a un décalage horaire après un clic droit coller.C'est une bonne idée, seulement il n'est donc pas tourner inutilement.
OriginalL'auteur Peter Ajtai
Utiliser un
<textarea>
au lieu<textarea>
la limite de mes options de styleVous pouvez lire les valeurs de
<textarea>
, de les mettre en forme et de les afficher dans un div?Cela pourrait-il être fait sans que l'utilisateur en soit conscient?
OriginalL'auteur Marko
Cela peut être une solution pour vous:
http://garage.pimentech.net/scripts_doc_jquery_jframe/
OriginalL'auteur djangofan
Vous pouvez utiliser un "keydown" événement - il s'agira de saisir la touche maj presses œuvres pour le collage, ainsi que la touche suppr.
Si vous avez besoin de détecter si le contenu a changé, stocker l'ancien contenu et de comparer lorsque l'événement est déclenché.
Pour capturer coller avec la souris, vous aurez probablement besoin de comparer le contenu de l'ancien contenu périodiquement, en fonction d'une minuterie. Vous pouvez réduire certains frais généraux par l'activation de la minuterie sur foyer, et de l'arrêter sur le flou.
bon point. Édité.
OriginalL'auteur sje397
Je pense que De TinyMCE pour JQuery peut faire le travail pour vous.
OriginalL'auteur xar