Apakah jQuery atau jQuery-UI memiliki fungsi untuk menonaktifkan pemilihan teks untuk elemen dokumen yang diberikan?
javascript
jquery
jquery-ui
Dawid Ohia
sumber
sumber
Jawaban:
Di jQuery 1.8, ini bisa dilakukan sebagai berikut:
sumber
Jika Anda menggunakan jQuery UI, ada metode untuk itu, tetapi hanya bisa menangani pemilihan mouse (yaitu CTRL+ Amasih berfungsi):
Kode ini benar-benar sederhana, jika Anda tidak ingin menggunakan jQuery UI:
sumber
Saya menemukan jawaban ini ( Prevent Highlight of Text Table ) paling membantu, dan mungkin dapat dikombinasikan dengan cara lain menyediakan kompatibilitas IE.
sumber
Berikut adalah solusi yang lebih komprehensif untuk pemilihan putuskan sambungan, dan pembatalan beberapa tombol pintas (seperti Ctrl+ adan Ctrl+ c. Tes: Cmd + adan Cmd+ c)
dan hubungi contoh:
jsfiddle.net/JBxnQ/
Ini mungkin juga tidak cukup untuk versi FireFox lama (saya tidak tahu yang mana). Jika semua ini tidak berhasil, tambahkan yang berikut:
sumber
attr('unselectable', 'on')
dua kali? Apakah ini salah ketik atau berguna?Berikut ini akan menonaktifkan pemilihan 'item' semua kelas di semua browser umum (IE, Chrome, Mozilla, Opera dan Safari):
sumber
sumber
Ini dapat dengan mudah dilakukan menggunakan JavaScript. Ini berlaku untuk semua Peramban
Panggil ke fungsi ini
sumber
Ini sebenarnya sangat sederhana. Untuk menonaktifkan pemilihan teks (dan juga mengeklik + menyeret teks (misalnya tautan di Chrome)), cukup gunakan kode jQuery berikut:
Semua ini dilakukan adalah mencegah terjadinya default ketika Anda mengklik dengan mouse Anda (
mousedown()
) di tagbody
danhtml
. Anda dapat dengan mudah mengubah elemen hanya dengan mengubah teks di antara dua tanda kutip (misalnya perubahan$('body, html')
untuk$('#myUnselectableDiv')
membuatmyUnselectableDiv
div untuk menjadi, baik, unselectable.Cuplikan singkat untuk menunjukkan / membuktikan ini kepada Anda:
Harap dicatat bahwa efek ini tidak sempurna, dan melakukan yang terbaik sambil membuat seluruh jendela tidak dapat dipilih. Anda mungkin juga ingin menambahkan
juga, dengan menggunakan bagian jawaban Vladimir di atas. (buka posnya di sini )
sumber
1 solusi garis untuk CHROME:
dan FF:
IE memerlukan pengaturan atribut "tidak dapat dipilih" (perincian di bawah).
Saya menguji ini di Chrome dan berhasil. Properti ini diwarisi sehingga pengaturannya pada elemen tubuh akan menonaktifkan pemilihan di seluruh dokumen Anda.
Detail di sini: http://help.dottoro.com/ljrlukea.php
Jika Anda menggunakan Penutupan, panggil saja fungsi ini:
Ini menangani semua browser secara transparan.
Peramban non-IE ditangani seperti ini:
Didefinisikan di sini: http://closure-library.googlecode.com/svn/!svn/bc/4/trunk/closure/goog/docs/closure_goog_style_style.js.source.html
Bagian IE ditangani seperti ini:
sumber
Saya pikir kode ini berfungsi di semua browser dan membutuhkan biaya overhead paling sedikit. Ini benar-benar campuran dari semua jawaban di atas. Beri tahu saya jika Anda menemukan bug!
Tambahkan CSS:
Tambahkan jQuery:
Opsional: Untuk menonaktifkan pemilihan untuk semua elemen anak-anak juga, Anda dapat mengubah blok IE menjadi:
Pemakaian:
sumber
Saya sudah mencoba semua pendekatan, dan ini yang paling sederhana bagi saya karena saya menggunakan IWebBrowser2 dan tidak punya 10 browser untuk bersaing dengan:
Berfungsi sempurna untuk saya!
sumber
Salah satu solusi untuk ini, untuk kasus yang sesuai, adalah dengan menggunakan
<button>
untuk teks yang Anda tidak ingin dipilih. Jika Anda mengikatclick
acara pada beberapa blok teks, dan tidak ingin teks itu dapat dipilih, mengubahnya menjadi tombol akan meningkatkan semantik dan juga mencegah teks dipilih.sumber
Cara terbaik dan paling sederhana yang saya temukan, mencegah ctrl + c, klik kanan. Dalam hal ini saya memblokir semuanya, jadi saya tidak perlu menentukan apa pun.
sumber