$(function () { const plan_index_buttons = $('#plan-index-buttons'); const plan_index_main = $('#plan-index-main'); // チェック済みの値をパラメーター又はcookieから取得してプランの表示 (function() { let checked_values = []; // getでパラメーター取得 var parameter = new Object; url = location.search.substring(1).split('&'); for (i=0; url[i]; i++) { var k = url[i].split('='); parameter[k[0]] = k[1]; } if (parameter.cate) { switch (parameter.cate) { case "wedding": checked_values = ['plan-0']; break; case "photo": checked_values = ['plan-1']; break; default: break; } } else if ($.cookie('checked_values')) { checked_values = $.cookie('checked_values').split(','); } // チェックボックスのチェック状態を再現 if (checked_values.length > 0) { plan_index_buttons.find('input[type="checkbox"]').each(function () { let value = $(this).val(); if (checked_values.indexOf(value) !== -1) { $(this).prop('checked', true); } }); } // プランの表示 render(checked_values); })(); // チェックボックスを選択した時 plan_index_buttons.find('input[type="checkbox"]').on('change', function () { let name = $(this).attr('name'); let value = $(this).val(); let checked = $(this).prop('checked'); let checked_values = []; if (checked) { if (value === 'all') { plan_index_buttons.find('input[type="checkbox"][value!="all"]').prop('checked', false); } else { plan_index_buttons.find('input[type="checkbox"][value="all"]').prop('checked', false); } if (name === 'plan-0') { if (value === 'plan-0') { plan_index_buttons.find('input[type="checkbox"][name="plan-0"][value!="plan-0"]').prop('checked', false); } else { plan_index_buttons.find('input[type="checkbox"][name="plan-0"][value="plan-0"]').prop('checked', false); } } if (name === 'plan-1') { if (value === 'plan-1') { plan_index_buttons.find('input[type="checkbox"][name="plan-1"][value!="plan-1"]').prop('checked', false); } else { plan_index_buttons.find('input[type="checkbox"][name="plan-1"][value="plan-1"]').prop('checked', false); } } } plan_index_buttons.find('input[type="checkbox"]:checked').each(function () { checked_values.push($(this).val()); }); // プランの表示 render(checked_values); // チェック済みの値をcookieに保存 $.cookie('checked_values', checked_values.join(','), { expires: 365 }); history.replaceState('','','/plan/'); }); // プランの表示 function render(checked_values) { plan_index_main.children().hide(); if (checked_values.length === 0 || checked_values.indexOf('all') !== -1) { plan_index_main.children().show(); return; } $.each(checked_values, function (i, value) { let target_class = '.' + value; let found = value.match(/^plan([0-9])+\-cat[0-9]+$/); if (found) { target_class = '.plan-' + found[1] + target_class; } plan_index_main.find(target_class).show(); }); } }); // アコーディオンメニュー $(function(){ $('.accordion').on('click', function() {//タイトル要素をクリックしたら var findElm = $(this).next(".accordion-section");//直後のアコーディオンを行うエリアを取得し $(findElm).slideToggle();//アコーディオンの上下動作 if($(this).hasClass('close')){//タイトル要素にクラス名closeがあれば $(this).removeClass('close');//クラス名を除去し }else{//それ以外は $(this).addClass('close');//クラス名closeを付与 } }); }); // //ページが読み込まれた際にopenクラスをつけ、openがついていたら開く動作※不必要なら下記全て削除 // $(window).on('load', function(){ // $('.accordion-section').addClass("open"); //accordion-areaのはじめのliにあるsectionにopenクラスを追加 // $(".open").each(function(index, element){ //openクラスを取得 // var Title =$(element).children('.accordion'); //openクラスの子要素のtitleクラスを取得 // $(Title).addClass('close'); //タイトルにクラス名closeを付与し // var Box =$(element).children('.accordion-section'); //openクラスの子要素boxクラスを取得 // $(Box).slideDown(500); //アコーディオンを開く // }); // });