Я предполагаю, что у меня есть <div>область контейнера ввода с текстом, ползунками и кнопками в ней, и я хочу предотвратить случайное двойное касание в ней <div>. Следующее не запрещает масштабирование области ввода и не относится к двойному касанию и масштабированию за пределами моего<div> области. Существуют вариации в зависимости от приложения браузера.
Я только что попробовал.
(1) Для Safari на iOS и Chrome на Android - предпочтительный метод. Работает за исключением интернет-приложения на Samsung, где двойные нажатия отключаются не полностью <div>, а по крайней мере на элементах, обрабатывающих нажатия. Она возвращает return false, с исключением на textи rangeвходов.
$('selector of <div> input area').on('touchend',disabledoubletap);
function disabledoubletap(ev) {
var preventok=$(ev.target).is('input[type=text],input[type=range]');
if(preventok==false) return false;
}
(2) Дополнительно для встроенного интернет-приложения на Android (5.1, Samsung) запрещает двойное касание <div>, но запрещает масштабирование <div>:
$('selector of <div> input area').on('touchstart touchend',disabledoubletap);
(3) Для Chrome на Android 5.1 вообще отключает двойное касание, не запрещает масштабирование и ничего не делает с двойным касанием в других браузерах. Запрет двойного касания <meta name="viewport" ...>раздражает, потому что <meta name="viewport" ...>кажется хорошей практикой.
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=5, user-scalable=yes">