Estoy manejando el evento dblclick en un lapso en mi aplicación web. Un efecto secundario es que el doble clic selecciona texto en la página. ¿Cómo puedo evitar que ocurra esta selección?
javascript
selection-object
David
fuente
fuente
-ms-user-select: none;
ver blogs.msdn.com/b/ie/archive/2012/01/11/… @PaoloBergantinoEn javascript simple:
O con jQuery:
fuente
return false
utilizarlo,event.preventDefault()
que no mata a ningún otro controlador que pueda tener en el mousedown.element
es un área de texto, sí.Para evitar la selección de texto SOLO después de hacer doble clic:
Podrías usar la
MouseEvent#detail
propiedad. Para eventos de mousedown o mouseup, es 1 más el recuento de clics actual.Ver https://developer.mozilla.org/en-US/docs/Web/API/UIEvent/detail
fuente
(event.detail === 2)
para evitar realmente SOLO hacer doble clic (y no hacer triple clic, etc.)FWIW, configuré
user-select: none
el elemento primario de esos elementos secundarios que no quiero seleccionar de alguna manera cuando hago doble clic en cualquier parte del elemento primario. ¡Y funciona! ¡Lo bueno es que lacontenteditable="true"
selección de texto, etc. todavía funciona en los elementos secundarios!Asi como:
fuente
style="user-select: note"
todas partes solucionó el problema que estaba tratando de resolver :)Una función Javascript simple que hace que el contenido dentro de un elemento de página no sea seleccionable:
fuente
Para aquellos que buscan una solución para Angular 2+ .
Puede usar la
mousedown
salida de la celda de la tabla.Y prevenir si el
detail > 1
.La
dblclick
salida continúa funcionando como se esperaba.fuente
o, en mozilla:
En IE,
fuente
document.body
.Hilo antiguo, pero se me ocurrió una solución que creo que es más limpia, ya que no deshabilita cada enlace vinculado al objeto, y solo evita selecciones de texto al azar y no deseadas en la página. Es sencillo y funciona bien para mí. Aquí hay un ejemplo; Quiero evitar la selección de texto cuando hago clic varias veces en el objeto con la clase "flecha derecha":
HTH!
fuente
Si está tratando de evitar por completo la selección de texto por cualquier método, así como solo con un doble clic, puede usar el
user-select: none
atributo css. He probado en Chrome 68, pero de acuerdo con https://caniuse.com/#search=user-select , debería funcionar en los otros navegadores de usuario normales actuales.Comportalmente, en Chrome 68 es heredado por elementos secundarios, y no permitía seleccionar el texto contenido de un elemento incluso cuando se seleccionó el texto que rodea e incluye el elemento.
fuente
Para evitar IE 8 CTRL y SHIFT, haga clic en la selección de texto en un elemento individual
Para evitar la selección de texto en el documento
fuente
Yo tuve el mismo problema. Lo resolví cambiando
<a>
y agregandoonclick="return false;"
(para que al hacer clic en él no se agregue una nueva entrada al historial del navegador).fuente