Saya pribadi hanya akan menggunakan kode JavaScript untuk beralih di antara 2 kelas.
Buat CSS menguraikan semua yang Anda butuhkan di div Anda MINUS aturan latar belakang, kemudian tambahkan dua kelas (misalnya: diperluas & diciutkan) sebagai aturan masing-masing dengan gambar latar belakang yang benar (atau posisi latar belakang jika menggunakan sprite).
CSS dengan gambar berbeda
.div {
/* button size etc properties */
}
.expanded {background: url(img/x.gif) no-repeat left top;}
.collapsed {background: url(img/y.gif) no-repeat left top;}
Atau CSS dengan sprite gambar
.div {
background: url(img/sprite.gif) no-repeat left top;
/* Other styles */
}
.expanded {background-position: left bottom;}
Kemudian...
Kode JavaScript dengan gambar
$(function){
$('#button').click(function(){
if($(this).hasClass('expanded'))
{
$(this).addClass('collapsed').removeClass('expanded');
}
else
{
$(this).addClass('expanded').removeClass('collapsed');
}
});
}
JavaScript dengan sprite
Catatan: toggleClass yang elegan tidak berfungsi di Internet Explorer 6, tetapi metode di bawah addClass
/ removeClass
ini akan berfungsi dengan baik dalam situasi ini juga
Solusi paling elegan (sayangnya tidak ramah Internet Explorer 6)
$(function){
$('#button').click(function(){
$(this).toggleClass('expanded');
});
}
$(function){
$('#button').click(function(){
if($(this).hasClass('expanded'))
{
$(this).removeClass('expanded');
}
else
{
$(this).addClass('expanded');
}
});
}
Sejauh yang saya tahu metode ini akan bekerja di seluruh browser, dan saya akan merasa jauh lebih nyaman bermain dengan CSS dan kelas daripada dengan perubahan URL dalam skrip.