Saya mencoba untuk mencegah browser menggunakan :hover
efek CSS, melalui JavaScript.
Saya telah mengatur gaya a
dan a:hover
di CSS saya, karena saya ingin efek hover, jika JS tidak tersedia. Tetapi jika JS adalah tersedia, saya ingin menimpa efek hover CSS saya dengan halus satu (menggunakan warna jQuery plugin untuk contoh.)
Saya mencoba ini:
$("ul#mainFilter a").hover(
function(e){ e.preventDefault(); ...do my stuff... },
function(e){ e.preventDefault(); ...do my stuff... });
Saya juga mencobanya return false;
, tetapi tidak berhasil.
Berikut adalah contoh masalah saya: http://jsfiddle.net/4rEzz/ . Tautan seharusnya memudar tanpa menjadi abu-abu.
Seperti yang disebutkan oleh fudgey, solusinya adalah menyetel ulang gaya hover menggunakan .css()
tetapi saya harus menimpa setiap properti, yang ditentukan dalam CSS (lihat di sini: http://jsfiddle.net/raPeX/1/ ). Saya mencari solusi umum.
Apakah ada yang tahu bagaimana melakukan ini?
PS: Saya tidak ingin menimpa setiap gaya yang telah saya atur untuk hover.
sumber
<noscript>
solusinya. Anda hanya meletakkan<link>
tag di dalam Anda<noscript>
, bukan di<style>
tag. Solusi saya memungkinkan Anda untuk menyimpan semuanya di dalam satu file stylesheet daripada beberapa file.Gunakan kelas kedua yang hanya memiliki hover yang ditetapkan:
HTML
CSS
Sekarang Anda dapat menggunakan Jquery untuk menghapus kelas, misalnya jika elemen telah diklik:
JQUERY
Semoga jawaban ini bermanfaat.
sumber
Anda dapat memanipulasi stylesheet dan aturan stylesheet itu sendiri dengan javascript
Menjadikan atribut! Penting dan menjadikan ini definisi CSS terakhir harus menggantikan definisi sebelumnya, kecuali ada yang ditargetkan secara lebih spesifik. Anda mungkin harus memasukkan lebih banyak aturan dalam kasus itu.
sumber
<link>
di dalam<noscript>
elemen? Itu akan berhasil, bukan?Error: The operation is insecure.
Ini mirip dengan jawaban aSeptik, tapi bagaimana dengan pendekatan ini? Bungkus kode CSS yang ingin Anda nonaktifkan menggunakan JavaScript dalam
<noscript>
tag. Dengan begitu, jika javaScript tidak aktif, CSS:hover
akan digunakan, jika tidak, efek JavaScript akan digunakan.Contoh:
sumber
Saya menggunakan
not()
operator CSS danaddClass()
fungsi jQuery . Berikut ini contohnya, saat Anda mengklik item daftar, item tidak akan melayang lagi:Sebagai contoh:
HTML
CSS
jQuery
sumber
Saya akan menggunakan CSS untuk mencegah: acara hover mengubah tampilan tautan.
CSS sederhana ini berarti bahwa tautan akan selalu berwarna hitam dan tidak bergaris bawah. Saya tidak tahu dari pertanyaan apakah perubahan dalam penampilan adalah satu-satunya hal yang ingin Anda kendalikan.
sumber
Saya akan merekomendasikan untuk mengganti semua
:hover
properti:active
ketika Anda mendeteksi bahwa perangkat mendukung sentuhan. Panggil saja fungsi ini saat Anda melakukannyatouch()
.sumber
Coba atur saja warna link:
Edit: atau lebih baik lagi, gunakan CSS, seperti yang disarankan Christopher
sumber
a
daripadaul#mainFilter a
jika itu yang Anda maksud, atau apakah Anda mengatakan setiap link pada halaman memiliki warna yang berbeda?a.jsOverride:hover
menimpa semua karakteristik css, jadi js hanya perlu menambahkanjsOverride
kelas itu ke semua tautan saat halaman dimuat ...Sebenarnya cara lain untuk mengatasinya adalah dengan menimpa CSS dengan
insertRule
.Ini memberi kemampuan untuk memasukkan aturan CSS ke stylesheet yang ada / baru. Dalam contoh konkret saya akan terlihat seperti ini:
Demo dengan contoh asli saya yang berumur 4 tahun: http://jsfiddle.net/raPeX/21/
sumber