0

次のような構造の div がいくつかあります。

<div>
    <div><a>more Info</a></div>
    <div><a>more segments</a></div>
</div>
<div>
    <div><a>more Info</a></div>
</div>
<div>
    <div><a>more Info</a></div>
    <div><a>more segments</a></div>
</div>
.......

これらの div は動的に生成されています。2 つのハイパーリンクを含む div もあれば (最初の div のように)、ハイパーリンクを 1 つしか含まない div もあります (2 番目の div のように)。

  1. をクリックするとmoreInfo link、情報を含む 1 つの div を表示する必要があります。別のリンクをクリックすると、以前に表示されていた div が非表示になり、そのリンクに関連付けられた適切な div が開きます。
  2. をクリックするとmoresegments link、セグメント数が表示され、all moreInfo links無効にする必要があります。各セグメントはmoreInfo link(セグメントは 2 番目の div と同様にコードで構成されます) で構成されます。各セグメントの moreInfo リンクをクリックした後。point1 のように動作する必要があります。

    これは私のサンプル コードhttp://jsfiddle.net/H5R53/16/

    です。上記のコードをクリックするmoreInfo linkと、情報を含む 1 つの div が表示されます。これまでは正常に動作しています。今私の問題は、同じリンクをもう一度クリックしても、情報が再び表示されないことです。またmoresegments linkmoreInfo links( moresegments リンクの子ではない) をクリックすると無効になり、開いているすべての div ( moreInfo リンクをクリックすると開く) が閉じます。誰でも私を助けてください。前もって感謝します。
4

1 に答える 1

2

私があなたの問題を正しく理解している場合、ユーザーが別の問題を開きたい場合は、div#moreInfoを非表示にします。

もしそうなら、

JQUERY

if ($('#moreInfo').size()==1) {
    $('#moreInfo').remove();
}

そのコントロールが追加されたJQUERY

$('.moreInfLink').live('click',function(){
    if ($('#moreInfo').size()==1) {
        $('#moreInfo').remove();
    }
   $(this).after("<div id='moreInfo'>sdasdad<br/>sdasdad<br/>sdasdad<br/><div id='close'>close</div></div>");
});

そしてあなたのフィドルが更新されました!

于 2012-05-11T13:11:37.337 に答える