2

stackoverflow の善良な人々は、これで途中で私を助けてくれました。

クリックするとdivが開き(スライドダウン)、クリックすると閉じるトグルボタンが必要です。アクティブなクラスも優先します。

ただし、別のトグル ボタンをクリックすると、子 div が開いて前のものを閉じます。

したがって、基本的に、開始 div を同時に開くことはできません。一度に 1 つだけです。

開始divはトグルボタンに関連していないため、アンカーIDでこれを行う必要があります(ページを少し下ります)

これまでのところうまくいきませんが、すべての html があります.. http://jsfiddle.net/CkTRa/398/

誰かが助けてくれるなら、どうもありがとう新しいdivをクリックするとdivが開きます。

4

4 に答える 4

5

デモ

  $("a").click(function(){
    var myelement = $(this).attr("href")
    $(myelement).slideToggle("slow");
    $(".toggle:visible").not(myelement).hide();

  });

</p>

于 2012-06-27T10:27:17.547 に答える
2

他の回答で述べたように、next() が機能するには、レイアウトを変更する必要があります (フィドルを参照)。その後、最初にすべてのトグル div を閉じるには、次を使用できます。

$(".toggle").slideUp("slow");

ただし、展開された div との干渉を防ぐために、not を使用してその div を除外できます。

var div = $(this).next(".toggle");
$(".toggle").not(div).slideUp("slow");
div.slideToggle("slow");

結合されたフィドル: http://jsfiddle.net/CkTRa/402/

于 2012-06-27T10:28:37.223 に答える
1

アンカー タグの href に基づいて適切な div を取得する jsFiddleを次に示します。

基本的:

 $( $(this).find("a").attr('href') ).slideToggle("slow");

編集:

現在のものではない、開いているものを非表示にするjsFiddle

基本的:

var divToToggle = $( $(this).find("a").attr('href') );
$(".toggle:visible").not(divToToggle).hide();
divToToggle.slideToggle("slow");
于 2012-06-27T10:18:28.673 に答える