Saya baru mengenal JQuery. Di Aplikasi saya, saya memiliki yang berikut ini:
$("#displayPanel div").live("click", function(){
$(this).css({'background-color' : 'pink', 'font-weight' : 'bolder'});
});
Ketika saya mengklik Div, warna Div itu berubah. Di dalam fungsi Klik itu saya memiliki beberapa fungsi yang harus dilakukan. Setelah semua itu saya ingin menghapus Css yang diterapkan dari Div. Bagaimana saya bisa melakukannya di JQuery?
Jawaban:
Masukkan properti CSS Anda ke dalam kelas, lalu lakukan sesuatu seperti ini:
Lalu di mana 'fungsi lain' Anda melakukan sesuatu seperti:
sumber
<div style="xxx"/>
masih CSS ... itu bukan cara yang sangat baik untuk melakukannya, tetapi itu berhasil.addClass
atauremoveClass
atauremoveAttr('style')
dalam jawaban @ ToRrEs.Anda dapat menghapus css tertentu yang ada di elemen seperti ini:
Meskipun saya setuju dengan karim bahwa Anda mungkin harus menggunakan kelas CSS.
sumber
Anda bisa menggunakan metode removeAttr, jika Anda ingin menghapus semua gaya inline yang Anda tambahkan secara manual dengan javascript. Lebih baik menggunakan kelas CSS tetapi Anda tidak pernah tahu.
sumber
.css('style-name', 'style-value')
Fungsi jQuery menambahkan gaya inline ke elemen - dan sangat penting untuk memperbarui gaya dengan cepat. Skrip seret / lepas dapat mengubahtop
danleft
gaya elemen yang diposisikan benar-benar - contoh di mana menggunakan kelas tidak praktis.Anda dapat menghapus properti sebaris dengan cara ini:
Sebagai contoh:
Ini pada dasarnya disebutkan di atas, dan pasti berhasil.
BTW, ini berguna dalam kasus seperti ketika Anda perlu menghapus status setelah animasi. Tentu saya bisa menulis setengah lusin kelas untuk menangani ini, atau saya bisa menggunakan kelas dasar saya dan #id melakukan beberapa matematika, dan menghapus gaya sebaris yang diterapkan animasi.
sumber
ATAU
sumber
Sebagai catatan, tergantung pada properti Anda mungkin dapat mengaturnya ke otomatis.
sumber
Tetapkan nilai default, misalnya:
$ (ini) .css ("height", "auto");
atau dalam hal fitur CSS lainnya
$ (ini) .css ("height", "inherit");
sumber
Sebenarnya cara terbaik yang saya temukan untuk melakukan ini ketika harus melakukan styling berbasis jquery kompleks, misalnya, jika Anda memiliki modal yang perlu Anda tampilkan tetapi perlu menghitung offset halaman untuk mendapatkan parameter yang benar yang perlu dimasukkan ke dalam fungsi a jQuery ("x"). css ({}).
Jadi di sini adalah pengaturan gaya, output dari variabel yang dihitung berdasarkan berbagai faktor.
Untuk menghapus gaya-gaya itu. daripada mengatur sesuatu seperti
Cara sederhananya
Ketika jquery memanipulasi elemen pada dom, style ditulis ke elemen dalam atribut "style" seolah-olah Anda sedang menulis style inline. Yang harus Anda lakukan adalah menghapus atribut itu dan item tersebut harus diatur ulang ke gaya aslinya
Semoga ini membantu
sumber
saya punya masalah yang sama juga, cukup hapus nilai
sumber
Jika Anda tidak ingin menggunakan kelas (yang memang harus Anda lakukan), satu-satunya cara untuk mencapai apa yang Anda inginkan adalah dengan menyimpan gaya perubahan terlebih dahulu:
sumber
Saya menggunakan solusi kedua dari user147767
Namun, ada salah ketik di sini. Harus
bukan <= 0
Saya juga mengubah kondisi ini untuk:
seperti kadang-kadang kita menambahkan properti css di atas jQuery, dan itu ditambahkan dengan cara yang berbeda untuk browser yang berbeda (yaitu properti perbatasan akan ditambahkan sebagai "perbatasan" untuk Firefox, dan "batas atas", "batas bawah" dll untuk IE ).
sumber
Sebelum menambahkan kelas Anda harus memeriksa apakah sudah ada kelas dengan metode .hasClass ()
Untuk pertanyaan spesifik Anda. Anda harus meletakkan barang-barang Anda di Cascading Stylesheet. Ini praktik terbaik untuk memisahkan desain dan fungsionalitas.
jadi solusi yang diusulkan untuk menambah dan menghapus nama kelas adalah praktik terbaik.
namun ketika Anda memanipulasi elemen, Anda tidak bisa mengontrol bagaimana elemen itu diberikan. removeAttr ('style') adalah cara TERBAIK untuk menghapus semua gaya inline.
sumber
Saya memodifikasi solusi user147767 sedikit agar memungkinkan untuk digunakan
strings
,arrays
danobjects
sebagai input:http://jsfiddle.net/ARTsinn/88mJF/
sumber