ボタンとして機能する3つの画像があります。それぞれ同じクラスです。画像をクリックすると、「アクティブ」というテキストがその下に表示されます(画像が含まれるdivの外側)。各画像の下に同じテキストがありますが、別の画像をクリックすると、テキストが表示されていた場所を非表示にして、クリックしたばかりの画像の下に表示する必要があります。今、画像をクリックすると、3 つの画像すべての下に「アクティブ」が表示されます。もう一度クリックすると、3 つすべてが消えます。どこが間違っていますか?
スクリプト:
<script type="text/javascript">
$(function()
{
$('p.active').hide();
});
$(function()
{
$('.mosaic-block').click(function(){
$('.mosaic-block').removeClass('mosaic-block-highlighted');
$(this).addClass('mosaic-block-highlighted');
$('p.active').show(showHide);
});
});
function showHide()
{
var id=$(this).attr("p");
if($(this).is(":visible"))
{
$(id).hide();
$(this).html("");
}
else
{
$(id).show();
$(this).html("ACTIVE");
}
return false;
};
</script>
HTML:
<div class="imgBlock">
<div class="mosaic-block cover">
<div class="mosaic-overlay" style="display: block; left: 0px; bottom: 0px;">
<img type="image" src="/images/g_crop.jpg"/>
</div>
<a href="javascript:;" onclick="launchX3()" id="x3" class="mosaic-backdrop" style="display:inline;">
<div class="details">
<h1>G Demo</h1>
<h4>Select G</h4>
</div>
</a>
</div>
<img class="button" type="image" src="/images/g_btn.jpg"/>
<p class="active">ACTIVE</p>
</div>
<div class="imgBlock">
<div class="mosaic-block cover">
<div class="mosaic-overlay" style="display: block; left: 0px; bottom: 0px;">
<img type="image" src="/images/e_crop.jpg"/>
</div>
<a href="javascript:;" onclick="launchX2()" id="x2" class="mosaic-backdrop" style="display:inline;">
<div class="details">
<h1>E Demo</h1>
<h4>Select E</h4>
</div>
</a>
</div>
<img class="button" type="image" src="/images/e_btn.jpg"/>
<p class="active">ACTIVE</p>
</div>
<div class="imgBlock">
<div class="mosaic-block cover boxgridLast">
<div class="mosaic-overlay" style="display: block; left: 0px; bottom: 0px;">
<img type="image" src="/images/c_crop.jpg"/>
</div>
<a href="javascript:;" onclick="launchX1()" id="x1" class="mosaic-backdrop" style="display:inline;">
<div class="details">
<h1>C Demo</h1>
<h4>Select C</h4>
</div>
</a>
</div>
<img class="button" type="image" src="/images/c_btn.jpg"/>
<p class="active">ACTIVE</p>
</div>`