0

だから私は私のグリッドベースのレイアウトを持っています:

<div id="gridrow" class="clear">
<div id="gridsection" class="float-left">
    <div id="gridwrap">
        <div id="gridimage" class="clear"></div>
        <div id="gridtitle" class="clear">Title</div>
        <div id="gridinfo" class="clear">Info</div>
    </div>
</div>
<div id="gridsection" class="float-right">
    <div id="gridwrap">
        <div id="gridimage" class="clear"></div>
        <div id="gridtitle" class="clear">Title</div>
        <div id="gridinfo" class="clear">Info</div>
    </div>
</div>
<div id="gridsection" class="gridmiddle">
    <div id="gridwrap">
        <div id="gridimage" class="clear"></div>
        <div id="gridtitle" class="clear">Title</div>
        <div id="gridinfo" class="clear">Info</div>
    </div>
</div>

次に、次の jQuery スクリプトがあります。

$("#gridtitle").each(function(index){
    $("#gridtitle:eq("+index+")").click(function (){
        $("#gridimage:eq("+index+"), #gridinfo:eq("+index+")").slideToggle();
    });
});

私はこれがうまくいくと思っていましたが(論理的に意味がありました)、最初のグリッド要素だけがうまくいきます。何かヒントはありますか?

詳細については、お気軽にお問い合わせください。

ありがとう。

4

3 に答える 3

2

異なる要素には異なる ID が必要です。

2 つ以上の要素が同じ ID を持つ場合、最初の要素のみが使用されます。

于 2012-08-19T20:57:53.100 に答える
1

IDは一意であり、オブジェクトごとに1つしか使用できません。代わりにclassedを使用して、セレクターを変更することもできます。

$(".gridtitle").each(function(index){
    $(".gridtitle:eq("+index+")").click(function (){
        $(".gridimage:eq("+index+"),.gridinfo:eq("+index+")").slideToggle();
    });
});​
于 2012-08-19T20:59:36.207 に答える
0

であるからgridtitleですid。代わりに a に変更して、次のclassように選択する必要があります。

$(".gridtitle").each(function() { ... });
于 2012-08-19T20:58:30.033 に答える