こちらのおかげで親・子・孫関係のチェックボックスの実装が出来ました。
親のON・OFFで子と孫を連動、子のON・OFFで孫を連動しました。
ここまでは良かったのですが、以下の手順で操作すると意図した表示になりません。
1.親(本)をONにする→子・孫がONの状態で表示される。
2.子(コミック)をOFFにする→孫が全てOFFの状態、トグルで隠れる。
3.この状態で親(本)をOFFにする→子が全てOFFの状態、トグルで隠れる。
4.再び親(本)をONにする→1の状態で表示したいが、子までしか表示されない。
作りの問題だと思っていますが、4の時に1と同じく孫まで表示したいのですが分かりません。。。
どのような方法があるでしょうか?
宜しくお願い致します。
html
1<p><input type="checkbox" id="book" value="01"/>本 </p> 2 <div id="book-group"> 3 <input type="checkbox" id="comic" value="001"/>コミック</p> 4 <div id="comic-group"> 5 <p><input type="checkbox" name="books[]" value="1" id="1"/>ドラゴンボール </p> 6 <p><input type="checkbox" name="books[]" value="2" id="2"/>ジョジョの奇妙な冒険 </p> 7 <p><input type="checkbox" name="books[]" value="3" id="3"/>幽遊白書 </p> 8 </div> 9 <input type="checkbox" id="novel" value="002"/>小説</p> 10 <div id="novel-group"> 11 <p><input type="checkbox" name="books[]" value="4" id="4"/>ソロモンの偽証 </p> 12 <p><input type="checkbox" name="books[]" value="5" id="5"/>火花 </p> 13 <p><input type="checkbox" name="books[]" value="6" id="6"/>コーヒーが冷めないうちに </p> 14 </div> 15 16 <input type="checkbox" id="magazine" value="003"/>雑誌</p> 17 <div id="magazine-group"> 18 <p><input type="checkbox" name="books[]" value="7" id="7"/>VERY </p> 19 <p><input type="checkbox" name="books[]" value="8" id="8"/>sweet </p> 20 </div> 21 </div>
jQuery
1 2// ページ読み込み完了後に実行 3$(window).load(function(){ 4 5 //初期表示は全て非表示 6 $('[id*=group]').css("display", "none"); 7 8}); 9 10 11 12$(function(){ 13 14 $("input").click(function () { 15 16 17 //クリックされたチェックボックスのグループ名を取得 18 var groupName = $(this).attr("id") + 'group'; 19 20 //グループ内のチェックボックスを取得 21 var targets = $("#" + groupName).find("input"); 22 23 if(this.checked){ 24 targets.prop('checked', true); 25 26 }else{ 27 targets.prop('checked', false); 28 29 } 30 31 //トグル 32 $("#" + groupName).slideToggle(); 33 34 35 36 37 }); 38}); 39
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/28 02:57
2016/05/28 04:15
2016/05/28 04:33