クリックするとキャプションを表示/非表示にするキャプション モジュールを設計しています。アニメーションが完了したら、トグルをトリガーするボタンのテキストを変更したいと思います。
以下は、ボタンのインスタンスが 1 つ存在する場合に機能しますが、複数ある場合、テキストは変更されません。DOM 内の移動についてよく理解していません$(this)
。アクティブなボタンをターゲットにするにはどうすればよいですか?
編集: 私のような他の初心者の場合、これは DOM の問題ではなく、JS スコープの問題であることに注意してください。
JS:
$('.btn').click(function(){
$(this).siblings('.caption').animate({
height: 'toggle'
}, 200, function() {
// After animation is done:
if($('.btn').text() == 'Hide'){
$('.btn').text('Show');
} else {
$('.btn').text('Hide');
}
});
});
HTML:
<div class="container">
<ul class="slides">
<li>...</li>
</ul>
<div class="caption">
<p class="txt"><span class="details">...</span></p>
</div>
<div class="btn">
<p class="txt">Hide</p>
</div>
</div>
私が間違っていることについての簡単な説明をいただければ幸いです。ありがとう!