基本的に私はこの問題を抱えています。一度に 1 つの見出しを開くように切り替えるアコーディオンがあり、見出しの右側にある開閉画像を追加する際に問題が発生しています。
これまでのところ、見出しをクリックすると「開く」画像が削除され、「閉じる」画像の別のクラスが切り替えられるようになっています。ここで、基本的にこれらのクラスを再度交換する必要があります。これにより、別の見出しを切り替えると、他の画像が削除されて元の画像に戻るようになります。
これが私が使用しているコードです。
JavaScript
<SCRIPT>
$("#accordion > li").click(function () {
$("#accordian li").removeClass("faq-header");
$(this).addClass("faq-header2");
if (false == $(this).next().is(':visible')) {
$('#accordion > ul').slideUp(250);
$('#accordion > ul').addClass('faq-header');
$(this).removeClass("faq-header");
}
$(this).next().slideToggle(300);
});
$('#accordion > ul:eq(0)').show();
</SCRIPT>
CSS
#accordion {
list-style: none;
margin-left:-38px;
}
#accordion ul:eq {
background-image:url(../img/faq-open.gif);
background-repeat:no-repeat;
background-position:right;
padding-right:20px;
}
#accordion li{
display: block;
background-color: #FFF;
font-weight: bold;
cursor: pointer;
}
.faq-header {
text-align:left;
background-image:url(../img/faq-close.gif);
background-repeat:no-repeat;
background-position:right;
margin-right:20px;
}
.faq-header2 {
text-align:left;
background-image:url(../img/faq-open.gif);
background-repeat:no-repeat;
background-position:right;
margin-right:20px;
}
#accordion ul {
list-style: none;
display: none;
}
#accordion ul li{
font-weight: normal;
cursor: auto;
background-color: #fff;
border-bottom:1px solid #999;
margin-left:-38px !important;
}
ご覧のとおり、1つのクラスを削除して別のクラスを$("#accordian li").removeClass("faq-header");
追加し、次を追加しました$(this).addClass("faq-header2");
しかし、選択されたセクションではなくなった後、削除.faq-header2
して再度追加する必要があります。.faq-header
それほど難しくはないように思えますが、コーディング方法がわかりません。関数なら基本的なはずです...