2011-01-04 32 views
2

jQueryで、対応する項目の説明とともにdivを表示できるようにする必要があります。画像1のjQueryでdivを表示/非表示

<img src="img1.png" id="img1"> 

<div id="div1" style="display:none"> 
description 1 
</div> 

<img src="img2.png" id="img2"> 

<div id="div2" style="display:none"> 
description 2 
</div> 

<img src="img3.png" id="img3"> 

<div id="div3" style="display:none"> 
description 3 
</div> 

クリックすると、DIV1を表示する必要があります。ここでは

は、私がこれまで持っているものです。一度に開くことができるdivは1つだけです。しかし、私はjQueryがこれを解決するための最善の方法だと考えています。今、それがどのように行われるか確認してください...

+0

ダイナミックに画像とdivのリストを作成すると、どうして私はそれを行うのですか?そのため、名前やIDは確実にありませんか? – santa

答えて

4
$(document).ready(function(){ 
    $('#img1').click(function(){ 
    $('#div1').show();//or use .toggle() to show/hide 
    }); 
}); 

あなたはいつもちょうど画像とdivのクラスを与え、画像の後のdivをトグルし、一般的にそれを処理している場合。

Ex: <img class="toggleImage"/><div class="toggledDiv"></div> 

$('.toggleImage').click(function(){ 
    $(this).next('.toggledDiv').toggle(); 
}); 

そして唯一のdiv要素が一度に開いていることを保証するために、次の操作を行います。

$('.toggleImage').click(function(){ 
    $(this).siblings('.toggledDiv').hide(); 
    $(this).next('.toggledDiv').show(); 
}); 
+0

よかった、ありがとう。 $(this).next( '。toggledDiv')。toggle();を修正しました。 divを開いたり閉じたりするのに最適です。私は、しかし、閉じた兄弟に問題がある...それは動作していないようだ...確かになぜか分からない。 – santa

+0

$(this).next( '。toggledDiv')に戻ります。それでも$(this).siblings( '。toggledDiv')の問題があります。 - 動作していないようです... – santa

+0

うーん。 $( '。toggledDiv')。parent()。children( '。toggledDiv')。hide(); –

1
$('#img1').click(
     function() { 
      $('#div1').toggle(); 
}); 
0

バインドのdivを示した画像へのクリックイベントを。

$("#img1").click(function() { 
    $("#div1").show(); 
} 
0

jQueryには、特定のアイテムを表示するために使用できるshow()メソッドがあります。

コンテキストに基づいて表示/非表示にする場合は、toggle()を使用できます。

-1
$("img").bind("click", function(){ 
    var divid = $(this).attr(id); 
    divid = divid.replace("img","div"); 
    $("#"+divid).toggle(); 
}); 
+0

IDにデータを入れるのは恐ろしい、ひどい考えです。 –

-1
function showOnly(inDiv) 
{ 
    $("#div1").hide(); 
    $("#div2").hide(); 
    $("#div3").hide(); 

    $(inDiv).show(); 
} 

$(document).ready(function(){ 
    $("#img1").click(showOnly("#div1")); 
    $("#img2").click(showOnly("#div2")); 
    $("#img3").click(showOnly("#div3")); 
}); 

は、リストでこれを行う方法、またはID番号のワイルドカードを使用してあります - ...しかし、私は、これはあなたが正しい方向に軌道に乗るだろうと確信している

+0

変数名と関数名は意味をなさないので、コードの重複はお粗末であり、ワイルドカードとシーケンシャルIDの使用は非常に悪いです。 –

+0

@Stefan:笑、下院議員に感謝します。 – Hogan

関連する問題