Na mouseUp
lub touchEnd
Chcę uzyskać odwołanie do elementu, w którym zdarzenie miało miejsce.Jak uzyskać touchEnd zachowywać się tak jak MouseUp?
W tym przykładzie, trzeba kliknąć na jeden element, przeciągnij myszą i wydany przez inny element. Po zwolnieniu myszy tło tego elementu zmieni kolor na czerwony. Mój kod działa poprawnie dla zdarzeń myszy, ale nie na urządzeniach dotykowych.
Gdy touchStart
znajduje się na jednym elemencie, a palec zostaje zwolniony na innym elemencie, otrzymuję tylko odniesienie do pierwszego elementu.
Co muszę zmienić, aby wydarzenia dotykowe działały dokładnie tak, jak zdarzenia myszy?
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";
}
jakie urządzenia dotykowe wypróbowałeś (znaczy) – shareef
** Podobne pytanie ** [Jak dowiedzieć się o aktualnym zdarzeniu event.target zdarzenia javascript touchmove?] (Http://stackoverflow.com/q/3918842/351708) – Rohit