添加/删除类并使用Cookie记住选择

时间:2012-08-05 22:20:01

标签: javascript jquery

我有一个简单的JQuery片段,用于在锚标签/链接上切换类。 我不知道的是,当点击其他链接时,如何进行类切换或添加/删除?示例:该类只能应用于单击的链接,并且一次不能在多个链接上。这就是我被困的地方。好吧,我不知道怎么做。

其次,如何使用JQuery Cookie保持当前链接处于活动状态。我已经下载了cookie扩展名。

这就是我所做的:

HTML:

<ul class="navbar">
 <li><a  href="#/">Link1</a></li>
 <li><a href="#/">Link2</a></li>
 <li><a  href="#/">Link3</a></li>
</ul>

CSS:

.activeLink{
    color: #930;
}

JQuery的:

$(document).ready(function() {
$('.navbar li a').click(function(){
    $(this).toggleClass('activeLink');
}); 
});

谢谢!

2 个答案:

答案 0 :(得分:1)

以下是使用事件传播的解决方案:

$(function() {

    var $activeLink,
        activeLinkHref = $.cookie('activeLinkHref'),
        activeClass = 'activeLink';

    $('.navbar').on('click', 'a', function() {
        $activeLink && $activeLink.removeClass(activeClass);
        $activeLink = $(this).addClass(activeClass);
        $.cookie('activeLinkHref', $activeLink.attr('href'));
    });

    // If a cookie is found, activate the related link.
    if (activeLinkHref) 
    $('.navbar a[href="' + activeLinkHref + '"]').click();

});​

这是一个demo(没有cookie功能,因为JSFiddle缺乏支持)。

答案 1 :(得分:0)

我是这样做的。这有点过于简单,但它可以在没有大量脑力劳动的情况下完成工作。

<ul class="navbar">
 <li><a  href="#/">Link1</a></li>
 <li><a href="#/">Link2</a></li>
 <li><a  href="#/">Link3</a></li>
</ul>

<script>
$(document).ready(function() {
$('.navbar li a').click(function(){
    $('.navbar li a').css('color', 'black');
    $(this).css('color', '#930');
}); 
});
</script>