Я пытаюсь получить позицию X с помощью jQuery события touchstart, используемого с функцией live?
Т.е.
$('#box').live('touchstart', function(e) { var xPos = e.PageX; } );
Теперь это работает с «щелчком» в качестве события. Как же (без использования альфа- версии jQuery Mobile) получить его с помощью события касания?
Любые идеи?
Спасибо за любую помощь.
Ответы:
Довольно поздно, но вам нужно получить доступ к исходному событию, а не к обработанному jQuery. Кроме того, поскольку это события с несколькими касаниями, необходимо внести другие изменения:
Если вам нужны другие пальцы, вы можете найти их в других индексах списка касаний.
ОБНОВЛЕНИЕ ДЛЯ НОВОГО JQUERY:
источник
touchmove
.e.preventDefault()
вtouchstart
обработчик событий.e.touches[0].pageX;
поработал для меняЯ использую эту простую функцию для проекта на основе JQuery
пример:
надеюсь, это будет полезно для вас;)
источник
out.x = e.pageX || e.originalEvent.touches[0].pageX;
if(e.type == 'touchstart' || e.type == 'touchmove' || e.type == 'touchend' || e.type == 'touchcancel'){
->if (e.type.startsWith("touch"))
?Я попробовал некоторые другие ответы здесь, но originalEvent также был undefined. При осмотре обнаружил свойство класса TouchList (как было предложено другим автором) и смог добраться до pageX / Y следующим образом:
источник
Если вы не используете jQuery ... вам нужно получить доступ к одному из событий,
TouchList
чтобы получитьTouch
объект, который имеетpageX/Y
clientX/Y
и т. Д.Вот ссылки на соответствующие документы:
Я использую
e.targetTouches[0].pageX
в своем случае.источник
См. Справку разработчика Safari о классе Touch .
В соответствии с этим должны быть доступны pageX / Y - может, стоит проверить орфографию? убедитесь, что это,
pageX
а неPageX
источник