内部にアンカー タグを持つ TD 要素と、アンカー タグがクリックされたときに表示したい div があります。また、既に開いている場合は、いずれかをクリックすると閉じられるようにします。
HTML:
<td>
<a href="#"><img src="images/1.jpg" /></a>
<div class="test"><p>test</p></div>
</td>
<td>
<a href="#"><img src="images/1.jpg" /></a>
<div class="test"><p>test</p></div>
</td>
このJQueryを試してみましたが、何らかの理由で最初にdivを表示するには2回クリックする必要があり、2番目のものをクリックすると最初のものは閉じません。クラスを追加する必要はありません。
<script type="text/javascript">
$(document).ready(function() {
$('.test').hide();
$('td a').on('click', function() {
var state = $(this).next('.test').is('.open');
if (state) {
$(this).removeClass('active').next('.test').removeClass('open').show();
}else{
$(this).addClass('active').next('.test').addClass('open').hide()
.siblings('.test').removeClass('open').show().end()
.siblings('.test').not(this).removeClass('active');
}
});
});
</script>