サイトのナビゲーションなどによくある、現在開いているページのメニューのcssを変えたいのですが、どのようにすれば良いのでしょうか?
現在下記のように記述しているのですが、上手くいきません。
php
1<nav role="navigation" id="subgnavi"> 2<ul class="subgnavi"> 3 <li><a href="<?php echo home_url(); ?>">ホーム</a></li> 4 <li><a href="<?php echo home_url(); ?>/i">いいい</a></li> 5 <li><a href="<?php echo home_url(); ?>/u">ううう</a></li> 6 <li><a href="<?php echo home_url(); ?>/e">えええ</a></li> 7 <li><a href="<?php echo home_url(); ?>/o">おおお</a></li> 8</ul> 9</nav>
css
1ul.subgnavi li { 2 display: inline-block; 3 padding: 15px 0 10px; 4 border-bottom: 5px solid #fff; 5} 6ul.subgnavi li a { 7 border-right: 1px solid #eee; 8 color: #000; 9 display: block; 10 font-size: 15px; 11 font-weight: bold; 12 padding: 5px 9px; 13 box-sizing: border-box; 14 text-decoration: none; 15} 16ul.subgnavi li.active { 17 border-bottom: 5px solid #971315; 18}
js
1$(function(){ 2 $("#subgnavi ul.subgnavi li").click(function(){ 3 $("#subgnavi ul.subgnavi li.active").removeClass("active"); 4 $(this).addClass("active"); 5 }); 6});
追記
以下の方法で、自分のしたいことがほぼ出来るようになりました。
ですが、この記述だとホームにずっと"active"がついたままになってしまいます...。
どうしたらいいでしょうか...。
js
1$(function(){ 2 $('#subgnavi ul.subgnavi a').each(function(){ 3 var $href = $(this).attr('href'); 4 if(location.href.match($href)) { 5 $(this).parent().addClass('active'); 6 } else { 7 $(this).parent().removeClass('active'); 8 } 9 }); 10});
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/08/22 10:43 編集
2018/08/22 10:44
退会済みユーザー
2018/08/22 10:50
2018/08/22 11:53
退会済みユーザー
2018/08/22 12:52 編集
2018/08/23 02:43