Wystarczy zapobiegania domyślna mouseUp powoduje zaznaczenie tekstu, aby być przez cały czas. Zdarzenie MOUSEUP jest odpowiedzialne za wyczyszczenie zaznaczenia tekstu. Jednak uniemożliwiając zachowanie domyślne, nie można odznaczyć tekstu za pomocą myszy.
Aby tego uniknąć i ponownie wybierz tekst, możesz ustawić flagę na FOCUS, odczytać z MOUSEUP i zresetować, aby przyszłe zdarzenia MOUSEUP działały zgodnie z oczekiwaniami.
$("#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);
});
Chcę zachować dokładne zachowanie w safari na iPadzie/iPhonie. To nie działa w przeglądarkach urządzeń iPod/iPhone. jakakolwiek wskazówka. Poniżej akceptowana odpowiedź dotyczy tylko Chrome/Safari na komputery. –
Uwaga: Zaakceptowana tutaj odpowiedź rozwiązuje tylko połowę problemu. Wykonuje wybraną pracę, ale utrudnia jej usunięcie przy kolejnych kliknięciach. Lepsze rozwiązanie można znaleźć tutaj: http://stackoverflow.com/questions/3380458/looking-for-a-better-workaround-to-chrome-select-on-focus-bug – SDC