使用ngClick我可以轻松地从event.offsetX获取相对点击坐标。然而,使用ngTouch似乎没有明显的方法来做到这一点。我已经彻底检查了event.originalEvent.changedTouches []数组,但触摸事件中的所有坐标都是绝对的。
唯一的方法似乎是遍历DOM并获得每个元素相对于其父元素的偏移......确实是一个糟糕的解决方案。我错过了什么吗?哪里可以轻松访问触摸相对于听音元素的x,y坐标?
答案 0 :(得分:1)
我最终使用jQuery来破解解决方案 - 即使在试图避开它并且一切都是有角度的时候,我偶尔也会发现这个问题。由于未提供相对坐标,因此必须确定要单击的目标元素的视口偏移量。
也许ngTouch是如此年轻以至于作者没有想过默认添加它,但这对我来说是一种疏忽。
我应该注意到我还发现了一个似乎是ngTouch错误的地方,如果你点击ng-click元素之外但足够接近触摸重叠到元素中,它会触发一个MouseEvent,而如果你点击得很好在元素内部,它使用TouchEvent。获取offsetX参数对于每个事件都是不同的,如下所示。
scope.click = function( event )
{
var offsetX = null;
if( event.originalEvent.changedTouches )
{
offsetX = event.originalEvent.changedTouches[0].clientX - $(event.currentTarget).offset().left;
}
else
{
offsetX = event.offsetX;
}
... do stuff with offsetX ...
}