2012-03-13 2 views
2

jQuery possède la méthode .select(), qui vous permet d'exécuter une fonction lorsque du texte est sélectionné dans une zone de texte.Détection d'un événement "désélectionner" dans une zone de texte

Malheureusement, il n'existe pas de méthode .deselect() correspondante pour exécuter une fonction lorsque l'utilisateur supprime une sélection.

Comment puis-je détecter si l'utilisateur a désélectionné le texte (par exemple, en tapant, en cliquant ou en défocalisant)?

Répondre

4
$("textarea").select(function() { 
    //do something here 
}); 

$("textarea").on("blur focus keydown mousedown", function() { 
    //do something else here 
});​ 

.on est utilisé dans jquery 1.7 et ultérieur. Avant que vous pouvez utiliser .delegate ou .live

http://jsfiddle.net/s29Vb/4/

Il a été simplifié pour l'exemple. Vous pouvez être plus spécifique avec le sélecteur plutôt que $("textarea").

Un autre exemple si vous voulez faire quelque chose sur blur focus keydown mousedown seulement si le texte a été sélectionné en premier lieu.

http://jsfiddle.net/s29Vb/5/

+1

si j'appuyez sur la touche Ctrl, la sélection est toujours là, donc peut-être besoin de filtrer toutes les fonctions/applications/... touches – didxga

Questions connexes