前提・実現したいこと
ホームページ制作を行っており、ページ内リンクをクリックした時に下線を引くような処理を行いたいです。
発生している問題・エラーメッセージ
ページリンクをクリックすると下線を表示することはできるのですが、クラスでの指定を行うとクリック時にメニューの全てのリンクの下線を削除することができない理由を知りたいです
該当のソースコード
html
1<header class="header"> 2 <div class="header__inner inner"> 3 <h1 class="header-logo"><a href="/"><img src="img/logo.png" alt=""></a></h1> 4 <ul class="header__nav"> 5 <li><a href="#card" class="select__line">Card</a></li> 6 <li><a href="#news" class="select__line">News</a></li> 7 <li><a href="#price" class="select__line">Price</a></li> 8 <li><a href="#access" class="select__line">Access</a></li> 9 <li><a href="#contact" class="select__line">Contact</a></li> 10 </ul> 11 </div> 12 </header> 13
sass
1 li { 2 &:not(:first-child){ 3 margin-left: 40px; 4 } 5 a { 6 color: #fff; 7 text-decoration: none; 8 position: relative; 9 10 &::after { 11 content:""; 12 width:100%; 13 position: absolute; 14 bottom: -10px; 15 height: 2px; 16 left: 0px; 17 background: transparent; 18 transition: all 0.3s ease 0s; 19 } 20 21 &:hover, 22 &.is-active { 23 24 &::after { 25 background: tomato; 26 } 27 28 } 29 30 } 31} 32}
jQuery
1 2$('.select__line').on('click', function() { 3 $('.select__line').removeClass('is-active'); 4 $(this).addClass('is-active'); 5 return false; 6});
試したこと
jQuery
1$('.header__nav li a').on('click', function() { 2 $('.header__nav li a').removeClass('is-active'); 3 $(this).addClass('is-active'); 4 return false; 5});
クラスを指定せずに階層指定にすると正常に動作します。