angularJS ngTouch - не может получить относительные координаты
Используя ngClick, я легко могу получить относительные координаты клика из event.offsetX. однако, используя ngTouch, кажется, нет очевидного способа сделать это. Я тщательно проверил массив event.originalEvent.changedTouches[], но все координаты в моем событии касания являются абсолютными.
кажется, что единственный способ пройти через DOM и получить смещение каждого элемента относительно его родителя... действительно ужасное решение. я что-то пропустил? где легкий доступ к координатам x,y касания относительно элемента прослушивания?
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 ...
}