Я бы хотел предотвратить события touchStart
, чтобы Safari не подпрыгивал на устройствах iOS при определенных условиях.Предотвратите touchStart, но разрешите события click
Для этого я использую на следующие:
$('.wrapper').on('touchstart', function(e) {
e.preventDefault();
});
Но теперь ни один из событий щелчка не работает на нем:
$('.wrapper').on('click', function() {
$('.wrapper').text('Click fired');
});
Я не могу заменить click
событие для любого другого. Поскольку это может исходить от конечного пользователя.
Раньше в iOS 10, подпрыгивая could be avoided by preventing only touchMove
, но так как iOS 10 будет отскакивать, если touchStart
также не включен.
Есть ли способ предотвратить только событие touchStart
, но разрешить использование события click
?
Nop, не работает. Кажется, всегда срабатывает 'touchStart' перед' щелчком'. Поэтому он предотвращает щелчок. – Alvaro
Как насчет изменения 'click' в' mousedown'? – Dekel
Как я уже сказал, это не вариант. Разработчики могут использовать любое событие, которое они хотят, и, вероятно, будут использовать 'click'. Обнаружил работу. Но выглядит скорее как хак: DI запускает событие клика на целевой цели после предотвращения по умолчанию: https://jsfiddle.net/8n47whd0/5/ – Alvaro