Sólo prevenir defecto en mouseup hace que la selección de texto a estar encendido en todo momento. El evento MOUSEUP es responsable de borrar la selección de texto. Sin embargo, al evitar su comportamiento predeterminado, no puede anular la selección del texto con el mouse.
Para evitar eso y hacer que la selección de texto funcione nuevamente, puede establecer un indicador en FOCUS, leerlo de MOUSEUP y restablecerlo para que los futuros eventos de MOUSEUP funcionen como se esperaba.
$("#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);
});
Quiero comportamiento exacto en safari de iPad/iPhone. Esto no funciona en los navegadores de iPod/iPhone. Cualquier pista. La respuesta a continuación aceptada es solo para Chrome/safari basado en escritorio. –
Nota: La respuesta aceptada aquí solo resuelve la mitad del problema. Hace que el trabajo seleccionado funcione, pero dificulta la anulación de la selección con los clics posteriores. Se puede encontrar una mejor solución aquí: http://stackoverflow.com/questions/3380458/looking-for-a-better-workaround-to-chrome-select-on-focus-bug – SDC