Кроссплатформенная обработка событий в формате HTML. - PullRequest
2 голосов
/ 22 января 2012

Читая о событии touchend, кажется, что поведение на разных устройствах несколько противоречиво.Я просто хочу знать лучший и самый простой способ определить, прекратились ли все прикосновения.Правильно ли я понимаю, что не могу полагаться на то, что event.touches является нулевым или пустым, когда это так, потому что некоторые устройства будут включать завершенное касание в этот список?Правильно ли я понимаю, что я не могу рассчитывать на то, что измененные касания имеют ту же длину, что и касания, в этом случае, поскольку некоторые устройства исключают завершенное касание из касаний?

1 Ответ

0 голосов
/ 22 января 2012

Пока только OSX (ipad, iphone) поддерживает событие ongesturechange в своем браузере. Все остальные события поддерживаются на всех устройствах, вот некоторые из них, и именно так их можно использовать. Для обнаружения касания можно использовать даже касание, оно одинаково для всех устройств и срабатывает, когда все пальцы не касаются:

$(someel).bind('touchend',callback');

Для определения поддержки касания просто используйте

var touchy=("ontouchstart" in document.documentElement)?true:false;

Руководство для разработчиков Safari для ipad содержит хорошую документацию по этому вопросу.

ОБНОВЛЕНИЕ: На самом деле, я был неправ, таченд срабатывает каждый раз, когда палец поднимается: вот отличный pdf для вас: http://www.albanx.com/programing/ajaxupload/uploaded/SafariJSRef.pdf посмотрите на стр. 21.

...