Estoy trabajando en una aplicación web para la que intento implementar un sistema de ventanas con todas las funciones. En este momento todo va muy bien, solo me encuentro con un problema menor. A veces, cuando voy a arrastrar una parte de mi aplicación (la mayoría de las veces el div de la esquina de mi ventana, que se supone que activa una operación de cambio de tamaño), el navegador web se vuelve inteligente y piensa que quiero arrastrar y soltar algo. El resultado final, mi acción se pone en espera mientras el navegador hace su cosa de arrastrar y soltar.
¿Existe una forma sencilla de desactivar la función de arrastrar y soltar del navegador? Idealmente, me gustaría poder apagarlo mientras el usuario hace clic en ciertos elementos, pero volver a habilitarlo para que los usuarios aún puedan usar la funcionalidad normal de su navegador en el contenido de mis ventanas. Estoy usando jQuery, y aunque no pude encontrarlo navegando en los documentos, si conoce una solución pura de jQuery, sería excelente.
En resumen: necesito deshabilitar la selección de texto del navegador y las funciones de arrastrar y soltar mientras mi usuario tiene el botón del mouse presionado, y restaurar esa funcionalidad cuando el usuario suelta el mouse.
fuente
Respuestas:
Intente evitar el evento predeterminado al mousedown:
o
fuente
:active
pseudoclase se aplique al elemento. Esto significa que realmente no puedo usarlo para mis enlaces.Esta cosa funciona ... Pruébelo.
Espero eso ayude. Gracias
fuente
<div>
elemento)copy paste
oyente, parece la solución perfecta para obligar al usuario a escribir la entrada en lugar de pegar / arrastrar algo sin afectar negativamente a otras partes de la página.Puede deshabilitar el arrastre simplemente usando
draggable="false"
atributo.http://www.w3schools.com/tags/att_global_draggable.asp
fuente
Esto podría funcionar: puede deshabilitar la selección con css3 para texto, imagen y básicamente todo.
Por supuesto, solo para los navegadores más nuevos. Para más detalles, consulte:
¿Cómo deshabilitar el resaltado de selección de texto usando CSS?
fuente
div
, pero con el arrastre desactivado.Con jQuery será algo así:
En mi caso, quería deshabilitar al usuario para que no soltara texto en las entradas, así que usé "soltar" en lugar de "mousedown".
En su lugar event.preventDefault () puede devolver falso. Esta es la diferencia.
Y el codigo:
fuente
Este es un violín que siempre uso con mis aplicaciones web:
Evitará que se arrastre y suelte cualquier cosa en su aplicación. Dependiendo de las necesidades del recorrido, puede reemplazar el selector de cuerpo con cualquier contenedor que los niños no deben arrastrar.
fuente
prueba esto
fuente
Para los
input
elementos, esta respuesta me funciona.Lo implementé en un componente de entrada personalizado en Angular 4, pero creo que podría implementarse con JS puro.
HTML
Definición de componente (JS):
fuente
usando la respuesta de @ SyntaxError, https://stackoverflow.com/a/13745199/5134043
Me las arreglé para hacer esto en React; la única forma en que pude averiguarlo fue adjuntar los métodos ondragstart y ondrop a una referencia, así:
fuente
Lo dejaré aquí. Me ayudó después de que probé todo.
fuente
Este JQuery funcionó para mí: -
fuente