所有这些都有效,除了在单击'ul.tab_nav li a'时尝试将类'current_tab'应用于'ul.tab_nav li'。
JQuery的
$(document).ready(function(){
$('.tabs').each(function(){
var tab = $(this);
tab.find('.tab_content').hide(); // Hide all divs
tab.find('ul.tab_nav li a').click(function(){ //When any link is clicked
tab.find('ul.tab_nav li a').removeClass('current_tab'); // Remove active class from all links
tab.addClass('current_tab'); //Set clicked link class to active
var currentTab = tab.find($(this).attr('href')); // Set variable currentTab to value of href attribute of clicked link
tab.find('.tab_content').slideUp(); // Hide all divs
$(currentTab).slideDown(); // Show div with id equal to variable currentTab
return false;
});
});
});
和html
<div class="box tabs siteBackgroundColor">
<div class="box_header">
<ul class="tab_nav">
<li class="dummyTab"><a href=".tab1" class="iconTab"> </a></li>
<li><a href=".tab2" class="iconTab iconTabWifi"> </a></li>
<li><a href=".tab3" class="iconTab iconTabWeb"> </a></li>
<li><a href=".tab2" class="iconTab iconTabHours"> </a></li>
<li><a href=".tab4" class="iconTab iconTabMap"> </a></li>
<li><a href=".tab3" class="iconTab iconTabPhone"> </a></li>
<li><a href=".tab4" class="iconTab iconTabShare"> </a></li>
</ul>
</div>
<div class="box_content tab_content tab1 dummyTab"></div>
<div class="box_content tab_content tab2">
<p><span class="textBold">HRS:</span> Mon-Fri 7am to 3pm, Saturday 8am to 3pm <span class="textBold">KITCHEN CLOSES</span> at 2:30pm</p>
</div>
<div class="box_content tab_content tab3">3<br />
3<br />
3<br />
3</div>
<div class="box_content tab_content tab4">4<br />
4<br />
4<br />
4<br />
4</div>
</div>
除此之外,它按照我需要的方式工作。
答案 0 :(得分:2)
试试这个,
tab.find('ul.tab_nav li').removeClass('current_tab');
$(this).closest('li').addClass('current_tab'); //Set clicked link li to active
<强> Demo 1 强>
仅设置active
链接,然后尝试
tab.find('ul.tab_nav li a').removeClass('current_tab');
$(this).addClass('current_tab'); //Set clicked link class to active
<强> Demo 2 强>
代替
tab.addClass('current_tab'); //Set clicked link class to active
已更新您应使用hide()
代替slideup()
,而div
不会为结束active tab
设置动画,并检查current_tab
是否是您的return false
然后使用anchor click
代替{{1}}
<强> Demo 3 强>
答案 1 :(得分:1)
尝试替换以下代码
tab.find('ul.tab_nav li a').removeClass('current_tab'); // Remove active class from all links
tab.addClass('current_tab'); //Set clicked link class to active
与
tab.find('ul.tab_nav li').removeClass('current_tab'); // Remove active class from all links
$(this).parent().addClass('current_tab'); //Set clicked link class to active
答案 2 :(得分:0)
我在您的代码中进行编辑,您可以轻松学习:
$(document).ready(function(){
$('.tabs').each(function(){
var tab = $(this);
tab.find('.tab_content').hide(); // Hide all divs
tab.find('.tab_nav li a').click(function(){ //When any link is clicked
tab.find('.tab_nav li').removeClass('current_tab'); // Remove active class from all links
tab.addClass('current_tab'); //Set clicked link class to active
var currentTab = tab.find($(this).attr('href')); // Set variable currentTab to value of href attribute of clicked link
tab.find('.tab_content').slideUp(); // Hide all divs
$(".currentTab").slideDown(); // Show div with id equal to variable currentTab
return false;
});
});
});