Saya memiliki denyut yang muncul saat pengguna mengklik link.
Masalahnya adalah bahwa tautan yang sama dapat diklik dan diseret untuk diatur ulang. Dalam hal ini, saya tidak perlu detak jantung muncul. Itu hanya perlu muncul jika benar-benar menunggu untuk pergi ke suatu tempat.
Bagaimana saya bisa, dengan jQuery, membuat event listener yang hanya akan memungkinkan berdenyut untuk muncul jika itu adalah klik ke tautan , dan bukan klik dan seret?
Jawaban:
Di mousedown, mulai setel status, jika peristiwa mousemove dipecat, rekam, akhirnya di mouseup, periksa apakah mouse bergerak. Jika pindah, kita sudah menyeret. Kalau kita belum pindah, itu klik.
Berikut demo: http://jsfiddle.net/W7tvD/1399/
sumber
mousemove
masih akan diaktifkan setidaknya sekali bahkan tanpa gerakan apa pun, jadi saya mengubahnya menjadi menaikkan variabel pada gerakan dan kemudian memeriksa ambang tertentu dimouseup
jsfiddle.net/W7tvD/1649 Bekerja seperti pesona bagi saya sekarang, terima kasih!Untuk beberapa alasan, solusi di atas tidak berfungsi untuk saya. Saya pergi dengan yang berikut:
Anda dapat menyesuaikan batas jarak menjadi apa pun yang Anda inginkan, atau bahkan membawanya ke nol.
sumber
sqrt
tidak lambat dan tidak akan memengaruhi UX, meskipun Anda melakukannya ratusan kali.Dengan jQuery UI lakukan ini!
sumber
Solusi ini menggunakan fungsi "on" dan "off" untuk mengikat peristiwa mousemove yang dilepaskan (bind dan unbind tidak berlaku lagi). Anda juga dapat mendeteksi perubahan posisi x dan y mouse antara dua peristiwa gerakan mouse.
sumber
Coba ini: ini menunjukkan kapan status 'diseret'. ;) link biola
sumber
Saya bercabang dari jawaban yang diterima untuk hanya berjalan ketika klik sedang DIBANTU dan diseret .
Fungsi saya berjalan saat saya tidak menahan mouse. Berikut kode yang diperbarui jika Anda juga menginginkan fungsi ini:
sumber
Untuk cara termudah ini adalah sentuhan mulai, gerakan sentuh, dan ujung sentuh. Itu berfungsi untuk PC dan perangkat sentuh, cukup periksa di dokumentasi jquery dan harap ini adalah solusi terbaik untuk Anda. semoga berhasil
sumber
Plugin jQuery berdasarkan jawaban Simen Echholt. Saya menyebutnya satu klik.
Digunakan:
^^
sumber
Pastikan Anda menyetel atribut elemen yang dapat diseret ke false sehingga Anda tidak memiliki efek samping saat mendengarkan peristiwa mouseup:
Kemudian, Anda dapat menggunakan jQuery:
sumber
Anda perlu menyetel pengatur waktu. Saat penghitung waktu habis, nyalakan denyut dan daftarkan kliknya. Saat seret terjadi, hapus pengatur waktu agar tidak pernah selesai.
sumber
Jika Anda menggunakan jQueryUI - ada acara onDrag. Jika tidak, maka lampirkan listener Anda ke mouseup (), bukan click ().
sumber
sumber
Anda tidak perlu menyiapkan variabel, Anda dapat menyetelnya jika variabel tersebut bergerak di atribut data
sumber
Saya membutuhkan fungsi yang selalu melacak posisi mouse dan mendeteksi penarikan ke kiri, kanan, atas, bawah. Itu juga tidak memicu saat klik tetapi membutuhkan minimal pergerakan 15px
sumber