使用Jquery .toggle()打开下拉菜单,单击时需要链接更改颜色

时间:2012-04-03 15:32:49

标签: jquery toggle slide

我正在使用以下代码导致基于ul的下拉菜单打开,我设置了css,以便在您悬停时“按钮”改变颜色,但我需要它来保持菜单的颜色开。

<script>
$(document).ready(function () {

$('#nav li').toggle(
    function () {
        //show its submenu
        $('ul', this).slideDown(100);
        $('#libg').toggleClass('clicked');
    },
    function () {
        //hide its submenu
        $('ul', this).slideUp(100);
        $('#libg').toggleClass('notclicked');
    }
);
});
</script>

萤火虫没有任何错误,幻灯片事件工作得很好,也许我不是说正确的事情? #libg是包含“按钮”的li的id。单击/未单击的类仅更改背景颜色。

http://jsfiddle.net/5tV45/

3 个答案:

答案 0 :(得分:1)

我希望您想要同时切换clicked类,因此当它被移除时,它处于notclicked

状态
    // replace this...
    // $('#libg').toggleClass('notclicked');
    // with this...
    $('#libg').toggleClass('clicked');

答案 1 :(得分:0)

您只需在“已点击”类中指定颜色,然后在两个函数中切换颜色:

$('#nav li').toggle(
    function () {
        //show its submenu
        $('ul', this).slideDown(100);
        $('#libg').toggleClass('clicked');
    },
    function () {
        //hide its submenu
        $('ul', this).slideUp(100);
        $('#libg').toggleClass('clicked');
    }
);

关闭菜单时,在菜单项上留下的“clicked”类中显示。

答案 2 :(得分:0)

你能在功能中设置颜色吗?

$(this).css({color: '#f00'});

...设置颜色,然后......

$(this).css({color: ''});

......取消它。虽然使用add / removeClass

可能会更好