获取移动端 touchend 事件中真正触摸点下方的元素
移动端的touchstart, touchmove, touchend三个事件,拖动元素结束时,获取到了touchend事件, 但是event.touches[0].target所指向的元素却是touchstart时获取到的元素,而并非手指所移动到上方的元素,所以在处理获取移动到哪个元素上方之类的需求时,普通方法已不奏效,解决方式如下:
var element = document.elementFromPoint(event.originalEvent.pageX, event.originalEvent.pageY);
这样获取到的即为所需元素。
1 document.addEventListener('touchend', function(e) { 2 var event = e || window.event; 3 var element = document.elementFromPoint(event.changedTouches[0].pageX, event.changedTouches[0].pageY); 4 console.log(element); 5 }, false);