Apakah mungkin untuk mengenali acara sentuh di browser Safari iPad menggunakan jQuery?
Saya menggunakan acara mouseOver dan mouseOut dalam aplikasi web. Apakah ada acara serupa untuk browser Safari iPad karena tidak ada acara seperti mouseOut dan mouseMove?
jquery
ipad
events
mobile-safari
jquery-events
Abhishek B.
sumber
sumber
Jika Anda menggunakan jQuery 1.7+, ini bahkan lebih sederhana daripada semua jawaban lainnya.
sumber
$('#whatever').on('touchstart click', function(){ /* do something... */ });
$('#whatever').on({ 'touchstart' : function(ev){}});
,ev
sepertinya tidak memiliki info tentang sentuhan (sentuhan, targetTouches atau perubahanTouches)ev.originalEvent
.Pendekatan paling sederhana adalah dengan menggunakan pustaka JavaScript multitouch seperti Hammer.js . Kemudian Anda dapat menulis kode seperti:
Dan Anda bisa terus berjalan. Ini mendukung ketuk, ketuk ganda, geser, tahan, ubah (yaitu, cubit) dan seret. Acara sentuh juga menyala ketika tindakan mouse setara terjadi, jadi Anda tidak perlu menulis dua set penangan acara. Oh, dan Anda memerlukan plugin jQuery jika Anda ingin dapat menulis dengan cara jQueryish seperti yang saya lakukan.
sumber
Menggunakan touchstart atau touchend saja bukan solusi yang baik, karena jika Anda menggulir halaman, perangkat mendeteksi itu sebagai sentuhan atau ketuk juga. Jadi, cara terbaik untuk mendeteksi acara ketuk dan klik pada saat yang sama adalah dengan hanya mendeteksi acara sentuh yang tidak menggerakkan layar (menggulir). Jadi untuk melakukan ini, tambahkan saja kode ini ke aplikasi Anda:
Saya mengujinya dan berfungsi baik untuk saya di iPad dan iPhone. Ini mendeteksi ketukan dan dapat membedakan ketuk dan sentuh gulir dengan mudah.
sumber
Anda dapat menggunakan .on () untuk menangkap beberapa peristiwa dan kemudian menguji sentuhan di layar, misalnya:
sumber
.bind
sudah usang. Anda harus menggunakan.on
jQuery Core tidak memiliki sesuatu yang spesial, tetapi Anda dapat membaca di jQuery Mobile Events halaman tentang berbagai acara sentuh, yang juga berfungsi pada selain perangkat iOS.
Mereka:
Perhatikan juga, bahwa selama acara gulir (berdasarkan sentuhan pada perangkat seluler) perangkat iOS membekukan manipulasi DOM saat menggulir.
sumber
Saya sedikit khawatir hanya menggunakan touchmove untuk proyek saya, karena sepertinya hanya menyala ketika sentuhan Anda berpindah dari satu lokasi ke lokasi lain (dan bukan pada sentuhan awal). Jadi saya memadukannya dengan touchstart , dan ini tampaknya bekerja dengan sangat baik untuk sentuhan awal dan gerakan apa pun.
sumber
document.getElementById("ttime").innerHTML = ((new Date()) - touchTime); touchTime = new Date();
Saya baru saja menguji plugin GitHub jQuery Touch Events dari benmajor untuk versi jQuery 1.4 dan 1.7+. Ini ringan dan bekerja sempurna dengan keduanya
on
danbind
sekaligus memberikan dukungan untuk serangkaian acara sentuhan lengkap.sumber