javascript - Jquery 获取选项卡以在事件时添加类

标签 javascript jquery

除了在单击“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>

除此之外,它正在按照我需要的方式工作。

最佳答案

试试这个,

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

<强> Demo 1

要设置事件链接,然后再尝试,

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设置动画> 并检查事件选项卡(如果它是您的current_tab),然后对 anchor 点击使用return false

<强> Demo 3

关于javascript - Jquery 获取选项卡以在事件时添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19418638/

相关文章:

javascript - 当我滚动到某个部分时向它添加类

javascript - 关于学习网络编程

javascript - Angular JS ng-options 返回 "? object:005 ?"

jquery - 为什么 Blueimp 的 jQuery-File-Upload 插件不触发回调?

javascript - 构建供 angularjs View 使用的文本值数组

javascript - 在 jQuery .load() 完成之前使按钮不可点击

javascript - 根据下拉列表 MVC 中的选择重新加载页面

javascript - 使一个元素绕另一个元素运行的 jQuery 插件?

JQueryMobile - 设置 fieldcontain 的标签宽度

php - ajax加载mysql数据到多个div