以下のようなコードを配列でまとめたいと思い、
まとめる前は上手くいったのですが、まとめると上手くいきませんでした。
【まとめる前のコード】
javascript
1$('#btnTabA').click(function(){ 2 $(this).css('background','#ef857d'); 3 $('#btnTab > div').not(this).css('background','#7bcad1'); 4 $('#btnA').css('z-index','1'); 5 $('#btnInner > div').not('#btnA').css('z-index','0'); 6}); 7$('#btnTabB').click(function(){ 8 $(this).css('background','#ef857d'); 9 $('#btnTab > div').not(this).css('background','#7bcad1'); 10 $('#btnB').css('z-index','1'); 11 $('#btnInner > div').not('#btnB').css('z-index','0'); 12}); 13$('#btnTabC').click(function(){ 14 $(this).css('background','#ef857d'); 15 $('#btnTab > div').not(this).css('background','#7bcad1'); 16 $('#btnC').css('z-index','1'); 17 $('#btnInner > div').not('#btnC').css('z-index','0'); 18});
【まとめた後のコード】
Javascript
1var btn = ['#btnA', '#btnB', '#btnC'], 2btnTab = ['#btnTabA', '#btnTabB', '#btnTabC'], 3btnLen = btn.length; 4 5for(var i = 0; i > btnLen; i++){ 6$(btnTab[i]).click(function(){ 7 $(this).css('background','#ef857d'); 8 $('#btnTab > div').not(this).css('background','#7bcad1'); 9 $(btn[i]).css('z-index','1'); 10 $('#btnInner > div').not(btn[i]).css('z-index','0'); 11});
まとめた場合の結果としては、なにかしらのbtnTabをクリックするとbtnTabCのzIndexが1になり、
それ以降はどこをクリックしても変わらない状態です。
どなたか分かる方がいましたら教えていただけたら幸いです。
回答2件
あなたの回答
tips
プレビュー