javascript - Always active the first ul list and the first div for certain id using jQuery -
problem:
i have jquery code switch between tabs. however, wondering how can extended activates first subelement of each id.
code html tab navigation:
<div id="navtabs"> <div> <a href="#tab1" class="active btn btn-info" data-toggle="tab"><i class="icon-home"></i>start</a> <a href="#tab2" class="btn btn-info" data-toggle="tab"><i class="icon-book"></i>essay</a> <a href="#tab3" class="btn btn-info" data-toggle="tab"><i class="icon-ok-sign"></i>criteria</a> <a href="#tab4" class="btn btn-info" data-toggle="tab"><i class="icon-time"></i>time</a> </div> </div>
code example tab:
<div class="tab-pane" id="tab2"> <ul id="mytab" class="nav nav-tabs"> <li class="active"><a href="#participants" data-toggle="tab">participants</a></li> <li><a href="#gradevalues" data-toggle="tab">criteria</a></li> </ul> <div id="mytabcontent" class="tab-content"> <div class="tab-pane fade in active" id="participants">text</div> <div class="tab-pane fade" id="gradevalues">text</div> </div> </div>
jquery code:
$('#navtabs a[data-toggle="tab"]').on('shown', function () { $('#navtabs a[data-toggle="tab"]').attr('class','btn btn-info'); $(this).attr('class','active btn btn-info'); })
scenario:
when click on second tab (#tab2), in addition jquery also: (1) activate first li element in #mytab and; (2) activate first div element in #mytabcontent. say, make sure there "class=active" first li-element , "class=tab-pane fade in active" first div.
try this:
$('#navtabs a[data-toggle="tab"]').on('shown', function () { $('#navtabs a[data-toggle="tab"]').attr('class','btn btn-info'); $(this).attr('class','active btn btn-info'); var tabid = $(this).attr('href'); var lis = $(tabid).find('#mytab li');//get collection of li's $.each(lis, function(){ $(this).removeclass('active'); //remove active class each li }); $(tabid).find('#mytab li:eq(0)').addclass('active');//add active class //same process divs var divs = $(tabid).find('#mytabcontent div'); $.each(divs, function(){ $(this).removeclass('in active'); }); $(tabid).find('#mytabcontent div:eq(0)').addclass('in active'); });
Comments
Post a Comment