※ ChatGPTを利用し、要約された質問です(原文:javascriptのCSSクラス追加について)
JavaScriptのCSSクラス追加について
このQ&Aのポイント
JavaScriptを使用して、タブをクリックすると表示内容が変わる機能を作成しています。
タブを上下に配置するためにHTMLとJavaScriptの修正を行いました。
上のタブが押されても、下のタブの同じ部分のCSSが変わるようにしたいです。
今、以下のサイトを参考にしながら、
タブをクリックすると表示内容が変わるというものを作っています。
http://black-flag.net/jquery/20101014-1597.html
サイトにあるように、
ひとつのタブだったらうまく動作できたのですが、
コンテンツの上下にタブをつけたくて、
HTMLを以下のように修正し、jsファイルも以下のように修正しました。
クラスをremoveするのは分かったのですが、
★マークのついている行のaddClassの書き方が分かりません。
上のタブが押された場合でも、
下のタブの同じ部分のCSSが変わってほしいのですが。。
ご教授いただけましたら幸いです。
どうぞよろしくお願いいたします。
【HTML】
≫<a href="javascript:void(0);" class="btn_act active">MENU【1】</a>
≫<a href="javascript:void(0);" class="btn_act">MENU【2】</a>
≫<a href="javascript:void(0);" class="btn_act">MENU【3】</a>
<div id="motion_area1" class="motion">
~MENU【1】クリックでオープンとなるタブエリア要素。~
</div><!--/tab_area1-->
<div id="motion_area2" class="motion">
~MENU【2】クリックでオープンとなるタブエリア要素。~
<img src="img/photo.jpg" />
</div><!--/tab_area2-->
<div id="motion_area3" class="motion">
~MENU【3】クリックでオープンとなるタブエリア要素。~
</div><!--/tab_area3-->
≫<a href="javascript:void(0);" class="btn_act2 active">MENU【1】</a>
≫<a href="javascript:void(0);" class="btn_act2">MENU【2】</a>
≫<a href="javascript:void(0);" class="btn_act2">MENU【3】</a>
【jsファイル】
$(function(){
$("a.btn_act").click(function(){
var connectCont = $("a.btn_act").index(this);
var showCont = connectCont+1;
$('.motion').css({display:'none'});
$('#motion_area'+(showCont)).slideDown('normal');
$('a.btn_act').removeClass('active');
$('a.btn_act2').removeClass('active');
$(this).addClass('active');
$($("a.btn_act2").index(connectCont)).addClass('active'); ←★
});
});
$(function(){
$("a.btn_act2").click(function(){
var connectCont = $("a.btn_act2").index(this);
var showCont = connectCont+1;
$('.motion').css({display:'none'});
$('#motion_area'+(showCont)).slideDown('normal');
$('a.btn_act2').removeClass('active');
$('a.btn_act').removeClass('active');
$(this).addClass('active');
$($("a.btn_act").index(connectCont)).addClass('active'); ←★
});
});
お礼
なるほど! ありがとうございます。 こういう書き方もあるんですね、すごく勉強になりました! 質問した行なのですが、 $("a.btn_act2").eq(connectCont).addClass('active'); →こうすることでクラスが追加することができました。 動作サンプルまですぐに作れてしまうなんてすごいです。。 ありがとうございます!