Как предотвратить имитацию событий мыши в мобильных браузерах?

Мобильные браузеры имитируют события мыши для поддержки веб-сайтов, которые присоединяют обработчики только к событиям мыши. Однако если вы хотите реализовать две модели взаимодействия — одну для событий мыши и одну для событий касания, — полезно запретить браузеру имитировать события мыши.

В iOS Safari это довольно просто — просто запустите preventDefault на touchend:

jQuery(document).on('touchend', function(e) {
  // Do some logic      
  e.preventDefault();
});

Это вполне разумно.К сожалению, ни браузер Android по умолчанию, ни Dolfin не отменяют симуляцию мыши с использованием этой техники. (Dolfin отменяет mousedown при запуске preventDefault при касании, но это не очень полезно, потому что вы не знаете, какое действие выполнит палец при касании.)

Есть ли другой способ условно или даже не условно, предотвратить срабатывание симулированных событий мыши?

[EDIT]

Чтобы лучше понять проблему (проблемы), я создал таблицу совместимости сенсорных событий по адресу: http://labs.cruncher.ch/touch-events- таблица совместимости/

10
задан stephband 11 March 2012 в 20:44
поделиться