Le fait d'empêcher la sélection par défaut lors du mouseup fait que la sélection de texte est activée à tout moment. L'événement MOUSEUP est chargé d'effacer la sélection de texte. Cependant, en empêchant son comportement par défaut, il est impossible de désélectionner le texte à l'aide de la souris.
Pour éviter cela et faire en sorte que la sélection de texte fonctionne à nouveau, vous pouvez définir un indicateur sur FOCUS, le lire depuis MOUSEUP et le réinitialiser afin que les futurs événements MOUSEUP fonctionnent comme prévu.
$("#souper_fancy").focus(function() {
$(this).select();
//set flag for preventing MOUSEUP event....
$this.data("preventMouseUp", true);
});
$("#souper_fancy").mouseup(function(e) {
var preventEvent = $this.data("preventMouseUp");
//only prevent default if the flag is TRUE
if (preventEvent) {
e.preventDefault();
}
//reset flag so MOUSEUP event deselect the text
$this.data("preventMouseUp", false);
});
0 votes
Je veux un comportement exact dans le safari de l'iPad/iPhone. Cela ne fonctionne pas avec les navigateurs iPod/iPhone. La réponse acceptée ci-dessous s'applique uniquement à Chrome/safari sur ordinateur.
5 votes
Remarque : la réponse acceptée ici ne résout que la moitié du problème. Elle fait fonctionner la sélection, mais il est difficile de la désélectionner ensuite avec les clics suivants. Une meilleure solution peut être trouvée ici : stackoverflow.com/questions/3380458/