###前提・実現したいこと
Javascriptで同じ処理を関数を使用してまとめるにはどうすれば良いか困っています。
同じ処理を、いくつも同じ関数を書いて実現すると冗長になってしまい見た目も美しくないため
ひとつの関数でまとめたいと思っています。
自分なりに調べてみたのですが、JS初心者のため理解が足りず・・・
宜しくお願い致します。
<!--tab1--> <div> <h2>タイトル1</h2> <ul class="tab1"> <li class="select">タブA</li> <li>タブB</li> </ul> <div class="area1"> <div>ああああ</div> </div> <div class="area1 disnon"> <div>いいい</div> </div> </div> <!--tab2--> <div> <h2>タイトル2</h2> <ul class="tab2"> <li class="select">タブA</li> <li>タブB</li> </ul> <div class="area2"> <div>ああああ</div> </div> <div class="area2 disnon"> <div>いいい</div> </div> </div> <!--tab3--> <div> <h2>タイトル3</h2> <ul class="tab3"> <li class="select">タブA</li> <li>タブB</li> </ul> <div class="area3"> <div>ああああ</div> </div> <div class="area3 disnon"> <div>いいい</div> </div> </div> <!--tab4--> <div> <h2>タイトル4</h2> <ul class="tab4"> <li class="select">タブA</li> <li>タブB</li> </ul> <div class="area4"> <div>ああああ</div> </div> <div class="area4 disnon"> <div>いいい</div> </div> </div>
//tab1 $(".tab1 li").on('click touchstart', function () { var num1 = $(".tab1 li").index(this); $(".area1").addClass('disnon').eq(num1).removeClass('disnon'); $(".tab1 li").removeClass('select'); $(this).addClass('select'); }); //tab2 $(".tab2 li").on('click touchstart', function () { var num2 = $(".tab2 li").index(this); $(".area2").addClass('disnon').eq(num2).removeClass('disnon'); $(".tab2 li").removeClass('select'); $(this).addClass('select'); }); //tab3 $(".tab3 li").on('click touchstart', function () { var num3 = $(".tab3 li").index(this); $(".area3").addClass('disnon').eq(num3).removeClass('disnon'); $(".tab3 li").removeClass('select'); $(this).addClass('select'); }); //tab4 $(".tab4 li").on('click touchstart', function () { var num4 = $(".tab4 li").index(this); $(".area4").addClass('disnon').eq(num4).removeClass('disnon'); $(".tab4 li").removeClass('select'); $(this).addClass('select'); });
HTMLの追記をしていただけませんか?
html部分も合わせてご提示ください。
失礼いたしました。htmlを追記いたしました。
回答2件
あなたの回答
tips
プレビュー