ユーザーがartcileのh3要素をクリックすると、アコーディオンのように表示されますが、少し異なります。jqueryを使用してトグルでCSS画像クラスを追加および削除する
私が達成できないことは、要素のslideToggle関数が呼び出されたときに画像が表示されず、変更されないことです。しかし、slideToggleは正常に動作しています。私は援助が必要なイメージです。
HTML: -
<div class="pages">
<article class="collapsible expanded collapsed">
<h3><?php echo $lang->xlate('presentation-b');?></h3>
</article>
<div class="content">
<ul>
<li>
<?php echo $lang->xlate('presentation-c');?> </li>
<li>
<?php echo $lang->xlate('presentation-d');?> </li>
<li>
<?php echo $lang->xlate('presentation-e');?> </li>
</ul>
</div>
</div>
CSS
#paragraph .pages .collapsible {
padding: 2px;
cursor: pointer;
font-weight: bold;
}
#paragraph .pages .collapsible .expanded {background: url('../img/list.png') no-repeat left top;}
#paragraph .pages .collapsible .collapsed {background: url('../img/pagination.gif') no-repeat left top;}
のjQuery: -
$('.collapsible').click(function(){
$coll = $(this);
$content = $coll.next();
$content.slideToggle(500, function() {
//execute this after slideToggle is done
//change text of header based on visibility of content div
if($(this).hasClass('expanded'))
{
$(this).toggleClass('collapsed expanded');
}
else
{
$(this).toggleClass('expanded collapsed');
}
});
});
私は削除した後に、質問を編集し '.'、必要な変更をしたが、画像は表示されません。 –
"$(this)"のスコープを確認します。$ collや$ contentに影響しますか?$ collに影響していますか?新しい要素が開いたときに古い要素が崩壊することを保証するためです。 ..if($ coll.hasClass( 'expanded')... – gavgrif