Saya sedang mengerjakan situs web seluler yang harus bekerja di berbagai perangkat. Yang membuat saya sakit kepala saat ini adalah BlackBerry.
Kita perlu mendukung klik keyboard dan juga acara sentuh.
Idealnya saya hanya menggunakan:
$thing.click(function(){...})
tetapi masalah yang kita hadapi adalah bahwa beberapa perangkat blackberry ini memiliki penundaan yang sangat mengganggu dari saat disentuh hingga memicu klik.
Obatnya adalah dengan menggunakan touchstart:
$thing.bind('touchstart', function(event){...})
Tetapi bagaimana saya bisa mengikat kedua acara, tetapi hanya menembak satu? Saya masih membutuhkan acara klik untuk perangkat keyboard, tetapi tentu saja, tidak ingin acara klik diaktifkan jika saya menggunakan perangkat sentuh.
Pertanyaan bonus: Apakah ada cara untuk melakukan ini dan juga mengakomodasi browser yang bahkan tidak memiliki acara touchstart? Dalam meneliti ini, sepertinya BlackBerry OS5 tidak mendukung touchstart sehingga juga perlu mengandalkan acara klik untuk browser itu.
TAMBAHAN:
Mungkin pertanyaan yang lebih komprehensif adalah:
Dengan jQuery, apakah mungkin / direkomendasikan untuk menangani interaksi sentuhan dan interaksi mouse dengan binding yang sama?
Idealnya, jawabannya adalah ya. Jika tidak, saya punya beberapa opsi:
1) Kami menggunakan WURFL untuk mendapatkan info perangkat sehingga dapat membuat matriks perangkat kami sendiri. Bergantung pada perangkat, kami akan menggunakan touchstart ATAU klik.
2) Mendeteksi dukungan sentuh di browser melalui JS (Saya perlu melakukan penelitian lebih lanjut tentang itu, tetapi sepertinya itu bisa dilakukan).
Namun, itu masih menyisakan satu masalah: bagaimana dengan perangkat yang mendukung KEDUA. Beberapa ponsel yang kami dukung (yaitu Nokias dan BlackBerries) memiliki layar sentuh dan keyboard. Jadi hal itu membuat saya kembali ke pertanyaan semula ... adakah cara untuk memungkinkan keduanya sekaligus?
.bind('touchstart mouseup')
akan menyelesaikannya (berdasarkan salah satu komentar di bawah)