0

除了试图让它在单击“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">&nbsp;</a></li>
            <li><a href=".tab2" class="iconTab iconTabWifi">&nbsp;</a></li>
            <li><a href=".tab3" class="iconTab iconTabWeb">&nbsp;</a></li>
            <li><a href=".tab2" class="iconTab iconTabHours">&nbsp;</a></li>
            <li><a href=".tab4" class="iconTab iconTabMap">&nbsp;</a></li>
            <li><a href=".tab3" class="iconTab iconTabPhone">&nbsp;</a></li>
            <li><a href=".tab4" class="iconTab iconTabShare">&nbsp;</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>

除此之外,它以我需要的方式工作。

4

3 回答 3

2

尝试这个,

tab.find('ul.tab_nav li').removeClass('current_tab');
$(this).closest('li').addClass('current_tab'); //Set clicked link li to active

演示 1

仅设置active链接然后尝试,

tab.find('ul.tab_nav li a').removeClass('current_tab');
$(this).addClass('current_tab'); //Set clicked link class to active

演示 2

代替

 tab.addClass('current_tab'); //Set clicked link class to active

更新您应该使用它hide()来代替slideup()不会为关闭设置动画div并检查active tab它是否是您的current_tab然后return false使用anchor click

演示 3

于 2013-10-17T05:05:03.437 回答
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

小提琴 http://jsfiddle.net/HMS37/

于 2013-10-17T05:06:37.983 回答
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;
    });
});
});
于 2013-10-17T05:06:38.273 回答