スマホのグローバルナビゲーションにて
現状は赤矢印のアイコンの部分を押すとプルダウンが開くのですが
これをこのアイコン部分だけでなくその列(業種別活用提案の文字まで含めた)
をクリックしたときにプルダウンが出るようにしたいです。
wordpressを利用しており、テーマはLighting Proです。
下記にHTML、変更前のjQuery、変更後のjQueryを載せました。
HTMLが長くなってしまうのでここではaタグのhref属性は空白にしました
変更後のjQueryでは列をクリックしても最初にifのtrueではなく、false(つまりelse文)が実行されてしまいます。
なのでif文の書き方がおかしいと思ったのですがコードはあっているような気がします。
HTML
1<ul id="menu-gnavi" class="vk-menu-acc menu vk-menu-acc-active"> 2 <li id="menu-item-4263" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4263"><a href="">-----</a> 3 </li> 4 <li id="menu-item-5114" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5114"> 5 <a href="">業種別活用提案</a><span class="acc-btn acc-btn-open"></span> 6 <ul class="sub-menu acc-child-close"> 7 <li id="menu-item-4822" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4822"><a href="">ーーーー</a></li> 8 <li id="menu-item-5113" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5113"><a href="">ーーー</a></li> 9 </ul> 10 </li> 11 <li id="menu-item-4261" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-4256 current_page_item menu-item-4261"><a href="" aria-current="page">----</a></li> 12 <li id="menu-item-4260" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4260"><a href="">----</a></li> 13 14</ul>
元々のjQueryコード
jQuery
1function vk_menu_acc_click(){jQuery('ul.vk-menu-acc li .acc-btn').click(function(){ 2 if(jQuery(this).hasClass('acc-btn-open')){ 3 jQuery(this).parent().addClass('acc-parent-open'); 4 jQuery(this).removeClass('acc-btn-open').addClass('acc-btn-close'); 5 jQuery(this).next().removeClass('acc-child-close').addClass('acc-child-open');} 6 else{ 7 jQuery(this).parent().removeClass('acc-parent-open'); 8 jQuery(this).removeClass('acc-btn-close').addClass('acc-btn-open'); 9 jQuery(this).next().removeClass('acc-child-open').addClass('acc-child-close');}});}
変更後のjQueryコード
jQuery
1function vk_menu_acc_click(){jQuery('ul.vk-menu-acc li').click(function(){ 2 var pulldown = jQuery(this).children('span') 3 if(jQuery(pulldown).hasClass('acc-btn-open')){ 4 jQuery(pulldown).parent().addClass('acc-parent-open'); 5 jQuery(pulldown).removeClass('acc-btn-open').addClass('acc-btn-close'); 6 jQuery(pulldown).next().removeClass('acc-child-close').addClass('acc-child-open');} 7 else{ 8 jQuery(pulldown).parent().removeClass('acc-parent-open'); 9 jQuery(pulldown).removeClass('acc-btn-close').addClass('acc-btn-open'); 10 jQuery(pulldown).next().removeClass('acc-child-open').addClass('acc-child-close');}});}
あなたの回答
tips
プレビュー