В mouseUp
или touchEnd
Я хочу получить ссылку на элемент, в котором произошло это событие.
В этом примере вам нужно щелкнуть по одному элементу, перетащить мышь и отпустить над другим элементом. Когда мышь будет выпущена, этот фон элемента изменится на красный. Мой код работает правильно для событий мыши, но не на сенсорных устройствах.
Когда touchStart
находится на одном элементе, а палец выпущен над другим элементом, я получаю только ссылку на первый элемент.
Что мне нужно изменить, чтобы события касания работали точно так же, как события мыши?
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";
}