/ / evento de deslizamiento cancela la selección de texto - google-chrome, jquery-mobile

evento de deslizamiento cancela la selección de texto - google-chrome, jquery-mobile

JQM 1.4.5

Tengo problemas con los eventos de "deslizar"implementado por JQuery Mobile. Como regla general, solo escuchar un evento no debería alterar la experiencia del usuario. Según esta regla, parece que hay un error en JQM y Chrome.

En Firefox e IE, funciona como se esperaba, sin embargo, en Chrome, el evento de arrastre del mouse parece finalizar cuando se activa el evento de deslizamiento.

Lo siguiente, por ejemplo. es demostrado en este jsfiddle

<input type="email" value="drag-select@this-text.com" />

<script>
$(document).ready(function() {
$(document).on("swipe", function(evt) {
console.log("swiped " + new Date().getTime());
});

console.log("ready");
});
</script>

Si arrastra el mouse sobre el texto en la entrada para seleccionarlo, solo se pueden seleccionar de 2 a 5 caracteres.

¿Alguien puede sugerir una solución?

Respuestas

0 para la respuesta № 1

En su controlador de deslizamiento, detenga la propagación de eventos. Esto hará que el evento de deslizamiento sea el final de la pila de eventos. Sin esto, desliza las llamadas y luego se disparan otros eventos.

$(document).on("swipe", function(evt) {
console.log("swiped " + new Date().getTime());
evt.stopPropagation();
});

Al hacer esto, pude resaltar el resto del texto.

Tenga en cuenta que su evento de deslizamiento seguirá disparándose, pero no los eventos posteriores. Es posible que desee cancelar solo bajo alguna condición.

También hay evt.preventDefault() que hará algo similar Como su nombre indica, evitará el comportamiento predeterminado. Entonces, si deslizar el dedo hacia la izquierda en el documento actúa como un botón "atrás" de forma predeterminada (lo hace en mi Android), pero desea deslizar hacia la izquierda para no hacerlo, es posible que desee preventDefault() también.