Saya mencoba untuk mendapatkan posisi X dengan jQuery dari acara touchstart, digunakan dengan fungsi langsung?
Yaitu
$('#box').live('touchstart', function(e) { var xPos = e.PageX; } );
Sekarang, ini berfungsi dengan 'klik' sebagai acara. Bagaimana caranya (tanpa menggunakan alpha jQuery Mobile) saya mendapatkannya dengan acara sentuh?
Ada ide?
Terima kasih atas bantuannya.
Jawaban:
Agak terlambat, tetapi Anda perlu mengakses acara asli, bukan yang dipijat jQuery. Selain itu, karena ini adalah acara multi-sentuh, perubahan lain perlu dilakukan:
Jika Anda ingin jari lain, Anda dapat menemukannya di indeks daftar sentuh lainnya.
UPDATE UNTUK JQUERY BARU:
sumber
touchmove
.e.preventDefault()
dalamtouchstart
event handler.e.touches[0].pageX;
Bekerja dengan baik untuk sayaSaya menggunakan fungsi sederhana ini untuk proyek berbasis JQuery
contoh:
semoga bermanfaat bagi Anda;)
sumber
out.x = e.pageX || e.originalEvent.touches[0].pageX;
if(e.type == 'touchstart' || e.type == 'touchmove' || e.type == 'touchend' || e.type == 'touchcancel'){
->if (e.type.startsWith("touch"))
?Saya mencoba beberapa jawaban lain di sini, tetapi originalEvent juga tidak ditentukan. Setelah diperiksa, temukan properti yang diklasifikasikan ke TouchList (seperti yang disarankan oleh poster lain) dan berhasil membuka halamanX / Y dengan cara ini:
sumber
Jika Anda tidak menggunakan jQuery ... Anda perlu mengakses salah satu acara
TouchList
untuk mendapatkanTouch
objek yang memilikipageX/Y
clientX/Y
dll.Berikut tautan ke dokumen yang relevan:
Saya menggunakan
e.targetTouches[0].pageX
dalam kasus saya.sumber
Periksa referensi pengembang Safari di kelas Touch .
Menurut ini, halamanX / Y harus tersedia - mungkin Anda harus memeriksa ejaan? pastikan itu
pageX
dan tidakPageX
sumber