0

jQueryにトグルステートメントを「ネスト」した状況があります。

ユーザーが1日を営業または休業として設定できるようにする多数の選択があります。

次に、ユーザーがすべての日の詳細を表示できるようにする選択があります。詳細はデフォルトで非表示になっています(これが私の問題の原因です)。

ユーザーが日を休業に設定した場合、ユーザーがすべての日の詳細を表示することを選択したときに、その日を表示したくありません。例えば。月曜日が休業に設定され、残りの週が開いていて、ユーザーが「詳細の表示」を選択した場合、月曜日を除くすべての日の詳細が表示されます。

これは、すべての詳細を表示することから始めれば問題なく機能します(詳細を非表示にして表示することができ、休業日は表示されません)。ただし、デフォルトでは詳細は非表示になっており、ユーザーが一部の日を休業に設定してから詳細を表示すると、休業日も含め、すべての日の詳細が表示されます。

含まれているdivのトグルが変更されたときに、「ネストされた」トグルを永続化する簡単な方法はありますか?

このjFiddleのある種の状況の大まかな例をまとめました。

http://jsfiddle.net/yTt3t/16/

助けてくれてありがとう。

4

1 に答える 1

1

実際、問題は、可視性を変更する要素の親要素が最初は非表示になっていることです。jQueryは、不要なCSSとDOMの変更を回避するためにいくつかの最適化を実行すると思います。

.toggle() ただし、ブール値を[docs]に渡すと、IMOの方が優れているので、要素の状態が常に正しいことが保証されます。

$("#monday_select").change(function(){
    $("#monday_details").toggle(this.value === 'Open');
});

$("#tuesday_select").change(function(){
    $("#tuesday_details").toggle(this.value === 'Open');
});

引数は、要素を表示するか(true)、非表示にするか()を制御しfalseます。

デモ

于 2012-04-11T00:30:24.043 に答える