我正在模拟移动设备的拖放。使用现成的库来转换鼠标事件以触摸诸如touchPunch.js
和hammer.js
之类的事件时,我遇到了很多麻烦,所以我决定自己动手。
var td;
var tr;
var id;
var xy;
var element;
function touchHandler(e) {
if (e.type == 'touchstart') {
element = $(e.target).closest('div.sensor');
id = $(e.target).closest('div.sensor').attr('id');
} else if (e.type == 'touchmove') {
xy = e.targetTouches[0];
$(element).css({ position: 'absolute', top: xy.pageY, left: xy.pageX }).appendTo('body');
} else if (e.type == 'touchend') {
xy = e.targetTouches[0];
// here I need to get the closest td
}
}
在touchstart
上,我捕获了元素和元素ID。
在touchmove
上,我获得了鼠标的XY坐标,然后将元素手动移动到该点。 (将其附加到身体上...)
在touchend
上,我想在页面上找到最接近的td并将元素重新吸附到网格中。
关于如何基于XY坐标获取最接近的td的任何想法?
谢谢!