クリックした要素にactiveクラスをつけて、すでにactiveクラスを持っているブロックからはクラスを取り除きたいのですが、同じ箇所をクリックしないと取り除くことができません。
■現状
●クリック前
<li class="active"></li> <li></li> <li></li>●違う箇所をクリックすると
<li class="active"></li> <li class="active"></li> <li></li>●同じ箇所をクリックするとクラスが消える
<li></li> <li class="active"></li> <li></li>■実現したいこと
●クリック前
<li class="active"></li> <li></li> <li></li>●違う箇所をクリックすると
<li></li> <li class="active"></li> <li></li>html
1<ul class="thumb__list"> 2 <?php 3 foreach ($meta['slide_images'] as $i) : ?> 4 <li class="thumb__list__item"> 5 <a class="thumb__list__item__link" href="javascript:void(0);"> 6 <img src="<?= $i['image_group']['image'] ?>"> 7 </a> 8 </li> 9 <?php endforeach; ?> 10 </ul>
sass
1.thumb__list { 2 &__item { 3 &.active { 4 border: 3px solid #3a8344; 5 } 6 } 7 }
js
1const thumbBlock = document.querySelectorAll(".thumb__list__item") 2 thumbBlock[0].classList.add('active'); 3 4thumbBlock.forEach((item,index)=>{ 5 item.onclick = function(){ 6 7 if(item.classList.contains('active')){ 8 item.classList.remove('active'); 9 }else{ 10 this.classList.toggle('active'); 11 } 12 13 } 14 15 }); 16
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。