将类添加到当前菜单选项卡

时间:2014-06-24 18:45:25

标签: jquery css menu tabs

我正在使用以下内容在3个不同的div之间切换..

查看工作DEMO

我试图找到一种方法将不同的背景颜色应用到当前选定的菜单选项卡,(包括页面加载的默认选项卡 - “每周”)

不可能将类添加到类中吗?

我是如何用jQuery做到这一点的?

这是我的代码......

jQuery:

 jQuery('.viewSchedule').click(function () {
    var index = $(this).index(),
    newTarget = jQuery('.targetSched').eq(index);
    console.log(index+newTarget)
    jQuery('.targetSched').not(newTarget).fadeOut('fast')
    newTarget.delay('fast').fadeIn('fast')
    return false;
})

CSS:

 .viewSchedule {}
 .viewBTN {display:block;width:auto;height:auto;padding:5px 10px 5px 10px;background:#ccc;color:#242424;cursor:pointer;border-radius:5px;float:left;margin-left:10px;font-family:dina,Arial, Helvetica, sans-serif;font-size:16px;text-align:center;}
 .viewBTN:hover {background:#FFF;color:#333;}


 .targetSched {display: none}
 .targetSched.first {display: block}

HTML:

 <a class="viewSchedule" target="1"><span class="viewBTN">WEEKLY</span></a>
 <a class="viewSchedule" target="2"><span class="viewBTN">DAILY</span></a>
 <a class="viewSchedule" target="3"><span class="viewBTN">LIST</span></a>

 <br /><br /><br /><br />

 <div id="sh-week" class="targetSched first">WEEKLY CONTENT</div>
 <div id="sh-daily" class="targetSched">DAILY CONTENT</div>
 <div id="sh-list" class="targetSched">LIST CONTENT</div>

2 个答案:

答案 0 :(得分:1)

JSFiddle

jQuery的:

jQuery('.viewSchedule').click(function () {
    $('.viewBTN').removeClass('selected');
    $(this).find('.viewBTN').addClass('selected');

    var index = $(this).index(),
    newTarget = jQuery('.targetSched').eq(index);
    jQuery('.targetSched').not(newTarget).fadeOut('fast')
    newTarget.delay('fast').fadeIn('fast')        
    return false;
})

CSS:

.selected {background: blue}

答案 1 :(得分:0)

你可以为一个元素添加多个类。

<强> DEMO

JAVASCRIPT

jQuery('.viewSchedule').click(function () {
        var index = $(this).index(),
        newTarget = jQuery('.targetSched').eq(index);

    $(".viewSchedule.active").removeClass("active");
     $(this).addClass("active");
    console.log(index+newTarget)
        jQuery('.targetSched').not(newTarget).fadeOut('fast')
        newTarget.delay('fast').fadeIn('fast')
        return false;
    })

CSS

.viewSchedule {}
.viewBTN {display:block;width:auto;height:auto;padding:5px 10px 5px 10px;background:#ccc;color:#242424;cursor:pointer;border-radius:5px;float:left;margin-left:10px;font-family:dina,Arial, Helvetica, sans-serif;font-size:16px;text-align:center;}
.viewBTN:hover {background:#FFF;color:#333;}


.viewSchedule.active .viewBTN{
    background-color:red;
    color:white;
}
.targetSched {display: none}
.targetSched.first {display: block}