スイッチを押した時、押したスイッチが色付くような感じにしたいです。
一番左のスイッチを押した時はちゃんと色付くのに真ん中、右のスイッチは色づかなくて
下記のような形になります。
jsの記述の仕方が多分悪いのですがどう記述すれば良いかわかりません。
わかる方いらっしゃいましたらご返答お願い致します。
HTML
1 2 <div class="setup-action__switch"> 3 <div id="test" class="setup-action__switch-body"> 4 <div id="a" class="setup-action__switch-body-a"></div> 5 <div id="b" class="setup-action__switch-body-b"></div> 6 </div> 7 </div> 8 9
.setup-action { &__switch { /* スイッチ台座部分 */ width: 200px; height: 50px; margin: 0 auto; border-radius: 50%; background-color: #d3d3d3; } &__switch-body { /* スイッチ側面一部(両端) */ position: relative; top: -18px; display: block; margin: 0 auto; width: 160px; height: 40px; background-color: #dcdcdc; } &__switch-body-a, &__switch-body-b { /* スイッチ底面、頭構成部分 */ position: absolute; left: 0; display: block; width: 160px; height: 40px; border-radius: 100%; content: ''; } &__switch-body-a { /* スイッチ底面:位置調整とスタイル */ bottom: -20px; background-color: #dcdcdc; } &__switch-body-b { /* スイッチ頭:位置調整とスタイル */ top: -20px; background-color: #f5f5f5; } &__switch-body:active { /* クリックアニメーション */ height: 20px; top: 2px; } } .is-active { /* 選択時スイッチ */ height: 28px; top: -6px; background-color: #dc143c; display: block; } .is-active-a { /* 選択時スイッチ */ background-color: #dc143c; } .is-active-b { /* 選択時スイッチ */ background-color: #ff0000 }
Javascript
1/* スイッチクリックアクション */ 2$(function(){ 3 $('.setup-action__switch-body').on('click', function(event){ 4 event.preventDefault(); 5 6 $(this).toggleClass('is-active'); 7 $('#a').toggleClass('is-active-a'); 8 $('#b').toggleClass('is-active-b'); 9 10 11 }); 12}); 13 14
new 1 ro様のアドバイスより
同ページにidが複数あるとご指摘があったため全てidを削除し、クラスセレクタに変更しました。
new 1 ro様ご指摘ありがとうございます!
HTML
1 <% @selected_verbs.each do |verb| %> 2 <div class="setup-action__switch"> 3 <div class="setup-action__switch-body"> 4 <div class="setup-action__switch-body-a"></div> 5 <div class="setup-action__switch-body-b"></div> 6 </div> 7 </div> 8 </li> 9
Javascript
1/* スイッチクリックアクション */ 2$(function(){ 3 $('.setup-action__switch-body').on('click', function(event){ 4 event.preventDefault(); 5 6 $(this).toggleClass('is-active'); 7 $('setup-action__switch-body-a').toggleClass('is-active-a'); 8 $('setup-action__switch-body-b').toggleClass('is-active-b'); 9 10 11 }); 12}); 13 14
⬇️結果
押したスイッチにしっかりと色がつくようになりましたが他のボタンにも
色がつくようになってしまいました。
解決方法わかる方お願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/04 12:55
2020/06/04 13:01
2020/06/04 13:21 編集