Saya sedang mengerjakan aplikasi web yang saya coba implementasikan dengan sistem windowing berfitur lengkap. Saat ini berjalan sangat baik, saya hanya mengalami satu masalah kecil. Kadang-kadang ketika saya menyeret bagian dari aplikasi saya (paling sering div sudut jendela saya, yang seharusnya memicu operasi pengubahan ukuran) browser web menjadi pintar dan mengira saya bermaksud menyeret dan melepaskan sesuatu. Hasil akhirnya, tindakan saya ditunda saat browser melakukan hal seret dan lepas.
Adakah cara mudah untuk menonaktifkan seret dan lepas browser? Idealnya saya ingin dapat mematikannya saat pengguna mengklik elemen tertentu, tetapi mengaktifkannya kembali sehingga pengguna masih dapat menggunakan fungsi normal browser mereka pada konten jendela saya. Saya menggunakan jQuery, dan meskipun saya tidak dapat menemukannya saat menjelajahi dokumen, jika Anda mengetahui solusi jQuery murni, itu akan sangat baik.
Singkatnya: Saya perlu menonaktifkan pemilihan teks browser dan fungsi drag-and-drop saat pengguna saya menekan tombol mouse, dan memulihkan fungsionalitas itu saat pengguna melepaskan mouse.
sumber
Jawaban:
Coba cegah default pada acara mousedown:
atau
sumber
:active
pseudo-class diterapkan ke elemen tersebut. Ini berarti saya tidak dapat menggunakannya untuk tautan saya.Hal ini berhasil ..... Cobalah.
semoga membantu. Terima kasih
sumber
<div>
elemen.)copy paste
pendengar sepertinya solusi sempurna untuk memaksa pengguna mengetik masukan daripada menempel / menyeret sesuatu tanpa mempengaruhi bagian lain dari halaman.Anda dapat menonaktifkan penarikan hanya dengan menggunakan
draggable="false"
atribut.http://www.w3schools.com/tags/att_global_draggable.asp
sumber
Ini mungkin berhasil: Anda dapat menonaktifkan pemilihan dengan css3 untuk teks, gambar, dan pada dasarnya semuanya.
Tentu saja hanya untuk browser yang lebih baru. Untuk lebih jelasnya periksa:
Bagaimana cara menonaktifkan penyorotan pemilihan teks menggunakan CSS?
sumber
div
, tetapi dengan drag dinonaktifkan.Dengan jQuery akan menjadi seperti itu:
Dalam kasus saya, saya ingin menonaktifkan pengguna dari teks drop di input jadi saya menggunakan "drop", bukan "mousedown".
Sebagai gantinya event.preventDefault () Anda bisa mengembalikan false. Inilah perbedaannya.
Dan kodenya:
sumber
Ini adalah biola yang selalu saya gunakan dengan aplikasi Web saya:
Ini akan mencegah apa pun di aplikasi Anda diseret dan dijatuhkan. Bergantung pada kebutuhan tur, Anda dapat mengganti pemilih tubuh dengan penampung apa pun yang tidak boleh diseret oleh anak-anak.
sumber
coba ini
sumber
Untuk
input
elemen, jawaban ini berhasil untuk saya.Saya menerapkannya pada komponen input khusus di Angular 4, tapi saya pikir itu bisa diimplementasikan dengan JS murni.
HTML
Definisi komponen (JS):
sumber
menggunakan jawaban @ SyntaxError, https://stackoverflow.com/a/13745199/5134043
Saya telah berhasil melakukan ini di React; satu-satunya cara yang bisa saya ketahui adalah dengan memasang metode ondragstart dan ondrop ke referensi, seperti:
sumber
Saya akan tinggalkan saja di sini. Membantu saya setelah saya mencoba segalanya.
sumber
JQuery ini Bekerja untuk saya: -
sumber