1

私の問題: 個々のヘッダー セクションごとにコンテンツ セクションが開きます。1 つのボタンで、これらすべてのセクションを展開したり折りたたんだりできます。ただし、ボタンは希望どおりに機能しません。代わりに、すべての閉じられたセクションを開き、セクションが開いたままになっている場合は、それを閉じます。

コード:

$(".panelStyle").hide();
$("#ExpandAndCollapseButton").click(function () {
    $(".panelStyle").slideToggle("medium");
});
$(".sectionLabels").click(function () {
    $(this).next(".panelStyle").slideToggle("medium");
});
4

1 に答える 1

2

スライドトグルを「強制的にすべて開く」アニメーションとして使用したくない場合。使いたいslideDown()

slideToggle は、現在の状態を切り替えるだけです。slideDown は、開いていないものを強制的に開きますが、開いているものはそのままにします。

以下の変更を参照してください。

$(".panelStyle").hide();
$("#ExpandButton").click(function () {
    $(".panelStyle").slideDown("medium");
});
$(".sectionLabels").click(function () {
    $(this).next(".panelStyle").slideToggle("medium");
});

すべての開閉を切り替えるロジックを追加しました。何も開いていない場合は、すべてが開いています。1 つ以上が既に開いている場合、すべてが閉じられます。

ここにフィドルがあります

http://jsfiddle.net/QwbNj/1/

これがコードです。

$("#clickme").click(function () {
    if($(".openme:visible").length == 0){
        $(".openme").slideDown();
    } else {
        $(".openme").slideUp();
    }

});
$(".menuwrapper").click(function () {
    $(this).find(".openme").slideToggle();
});
于 2013-06-14T13:48:55.497 に答える