Monday, October 31, 2011

JQuery .addClass(), .removeClass() dan .toggleClass()

JQuery .addClass(), .removeClass() dan .toggleClass()

  • .addClass() digunakan untuk menambahkan class pada elemen berdasarkan perintah.
  • .removeClass() digunakan untuk membuang class pada elemen sesuai perintah.
  • .toggleClass() merupakan gabungan antara perintah .addClass() dan .removeClass() yang bertugas untuk menambah dan menghilangkan class secara bergantian.


Contoh Penerapan Manipulasi .addClass() dan .removeClass()

Manipulasi ini secara umum digunakan untuk mempengaruhi sebuah objek berdasarkan CSS. Misalnya, ada sebuah objek berwarna hitam, dan kamu ingin objek tersebut berubah warna menjadi hijau setelah sebuah tombol diklik, dan akan mengembalikan warnanya menjadi seperti semula ketika sebuah tombol khusus diklik. Maka kamu harus menuliskannya seperti ini:

Elemen Objek

<button class='ubah'>Ubah menjadi Hijau</button>
<button class='remove'>Kembalikan Warna</button>

<div id='area'>Ini Ibu Ani</div>


CSS

#area {
  background:black;
  pading:10px 20px;
  color:#fff;
}

Deklarasi JQuery

$(document).ready(function() {
     $('.ubah').click(function() {
          $('#target').addClass('hijau');
     });
     $('.remove').click(function(){
          $('#target').removeClass('hijau');
     });
});


Jika hanya kode di atas saja yang kamu tuliskan, maka tidak akan terjadi apa-apa pada hasil pekerjaanmu. Mengingat di sini akan terjadi peristiwa penambahan dan penghilangan class='hijau' pada elemen sasaran, maka kamu juga harus menambahkan deklarasi CLASS hijau tersebut dalam CSS, walaupun secara visual tidak ada satupun elemen yang memiliki class='hijau'. Dengan begitu, saat sebuah elemen mengalami penambahan class, kode .hijau{background:green;padding:50px;} baru akan terpanggil:

#area {
  background:black;
  pading:10px 20px;
  color:#fff;
}

.hijau {
  background:green;
  padding:50px;
}


Contoh Penerapan Manipulasi .toggleClass()

Cara yang satu ini lebih praktis, karena di sini kita hanya menggunakan satu buah tombol saja untuk menciptaka dua perintah:

Elemen Objek

<button class='toggle'>Ubah menjadi Hijau atau Hitam</button>

<div id='area'>Ini Ibu Ani</div>

CSS

#area {
  background:black;
  pading:10px 20px;
  color:#fff;
}

.hijau {
  background:green;
  padding:50px;
}

Deklarasi JQuery

$(document).ready(function() {
     $('.toggle').click(function() {
          $('#target').toggleClass('hijau');
     });
});



Perlu diingat bahwa manipulasi .addClass() dan .toggleClass() sama sekali tidak akan mengubah class yang tertanam pada elemen asli. Sebagai contoh, Saya akan membuat elemen dengan atribut yang bukan berupa ID, melainkan CLASS seperti ini:

<div class='target'>Ini Ibu Ani</div>
$(document).ready(function() {
     $('.target').addClass('hijau');
});

Maka peristiwa yang akan terjadi adalah bukan mengubah class='target' menjadi class='hijau', melainkan hanya akan menyisipkan class hijau di samping class target seperti ini:

<div class='target hijau'>Ini Ibu Ani</div>

Labels: ,

2 Comments:

At Tuesday, September 11, 2012 at 10:31:00 PM GMT+7, Blogger Unknown said...

Mas Taufik mau nanya nih..
klo element saya seperti ini:
<div class="sample">
<article class="contoh"></article>
</div>
<div class="sample">
<article class="contoh"></article>
</div>
<div class="sample">
<article class="contoh"></article>
</div>
<div class="sample">
<article class="contoh"></article>
</div>

dan mau menambahkan class baru hanya pada bagian article yang kedua agar menjadi seperti ini:
<div class="sample">
<article class="contoh"></article>
</div>
<div class="sample">
<article class="contoh salah"></article>
</div>
<div class="sample">
<article class="contoh"></article>
</div>
<div class="sample">
<article class="contoh"></article>
</div>


gimana caranya mas???

 
At Wednesday, September 12, 2012 at 4:11:00 PM GMT+7, Blogger Taufik Nurrohman said...

Pakai selektor .eq() dan .find():

$('.sample').eq(1).find('.contoh').addClass('salah');

Ingat, dalam JavaScript umumnya urutan dimulai dari angka nol ⇒ http://jsfiddle.net/tovic/yJ6Mg/15/

 

Post a Comment

<< Home