Saya berasumsi bahwa saya memiliki <div>
area wadah input dengan teks, slider dan tombol di dalamnya, dan ingin mencegah ketukan ganda yang tidak disengaja di dalamnya <div>
. Hal berikut tidak menghalangi zoom pada area input, dan ini tidak terkait dengan ketuk dua kali dan zoom di luar <div>
area saya . Ada variasi tergantung pada aplikasi browser.
Saya baru mencobanya.
(1) Untuk Safari di iOS, dan Chrome di Android, dan merupakan metode yang disukai. Berfungsi kecuali untuk aplikasi Internet di Samsung, yang menonaktifkan ketukan dua kali tidak secara penuh <div>
, tetapi setidaknya pada elemen yang menangani ketukan. Ia kembali return false
, dengan pengecualian text
dan range
masukan.
$('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) Secara opsional untuk aplikasi Internet internal di Android (5.1, Samsung), menghambat ketukan dua kali pada <div>
, tetapi menghambat zoom pada <div>
:
$('selector of <div> input area').on('touchstart touchend',disabledoubletap);
(3) Untuk Chrome di Android 5.1, menonaktifkan ketuk dua kali sama sekali, tidak menghalangi pembesaran, dan tidak melakukan apa pun terkait ketuk dua kali di browser lain. Penghambatan ketuk dua kali <meta name="viewport" ...>
menjengkelkan, karena <meta name="viewport" ...>
tampaknya praktik yang baik.
<meta name="viewport" content="width=device-width, initial-scale=1,
maximum-scale=5, user-scalable=yes">