En mouseUp
o touchEnd
Quiero obtener la referencia del elemento en el que ocurrió ese evento.¿Cómo obtener touchEnd para comportarse como mouseUp?
En este ejemplo, es necesario hacer clic en un elemento, arrastre con el ratón y lanzado sobre otro elemento. Cuando se suelta el mouse, el fondo de ese elemento cambiará a rojo. Mi código funciona correctamente para los eventos del mouse, pero no en los dispositivos táctiles.
Cuando el touchStart
está en un elemento y el dedo se suelta sobre otro elemento, obtengo solo la referencia al primer elemento.
¿Qué necesito cambiar para que los eventos táctiles funcionen exactamente como los eventos del mouse?
var isMouseDown = false;
var panel1 = document.getElementById('panel1');
var panel2 = document.getElementById('panel2');
panel1.onmousedown = onDocumentMouseDown;
panel1.onmouseup = onDocumentMouseUp;
panel1.onmousemove = onDocumentMouseMove;
panel1.addEventListener('touchstart', onDocumentTouchStart, false);
panel1.addEventListener('touchmove', onDocumentTouchMove, false);
panel1.addEventListener('touchend', onDocumentTouchEnd, false);
panel2.onmousedown = onDocumentMouseDown;
panel2.onmouseup = onDocumentMouseUp;
panel2.onmousemove = onDocumentMouseMove;
panel2.addEventListener('touchstart', onDocumentTouchStart, false);
panel2.addEventListener('touchmove', onDocumentTouchMove, false);
panel2.addEventListener('touchend', onDocumentTouchEnd, false);
function onDocumentMouseDown(event) {
event.preventDefault();
panel1.style.background="#2E442E";
panel2.style.background="#5D855C";
}
function onDocumentMouseUp(event) {
event.preventDefault();
this.style.background="#ff0000";
}
function onDocumentMouseMove(event) {
}
function onDocumentTouchStart(event) {
event.preventDefault();
panel1.style.background="#2E442E";
panel2.style.background="#5D855C";
}
function onDocumentTouchMove(event) {
}
function onDocumentTouchEnd(event) {
event.preventDefault();
this.style.background="#ff0000";
}
qué dispositivos táctiles ha probado (medio) – shareef
** Pregunta similar ** [¿Cómo averiguar el evento real.target of touchmove javascript event?] (Http://stackoverflow.com/q/3918842/351708) – Rohit