jQuery - 在动态创建的菜单中更改菜单项路径的CSS

时间:2012-01-16 16:54:54

标签: jquery

我正在使用jQuery Vertical Menu Library www.dynamicdrive.com/dynamicindex1/ddsmoothmenu.htm我想完成所选路径的选择。假设我通过以下路径浏览该菜单(在该网站上的演示中):

Folder 2 > Folder 2.1 > Folder 3.1.1 > SubItem 3.1.1.1

当我点击SubItem 3.1.1.1时,我想要所有之前的项目(来自上面的路径)更改其背景。下面的代码仅选择最顶层的项目。如何解决?

    $('#nav > li').click(function () {
        $(this).children('a').css('background-color', 'red'); 
        $(this).parents('ul').each(function () { $(this).prev('a').css('background-color', 'red'); });
    });

。在那种情况下,我的代码失败了。

2 个答案:

答案 0 :(得分:1)

菜单似乎有条理,点击事件会从子li冒出来到父li,所以你只需要将click事件绑定到所有菜单项并设置背景对于当前元素:

$('#nav li').click(function () {
    $(this).children('a').css('background-color', 'red'); 
});

当您点击另一个菜单项

时,您仍可能想要取消设置红色背景

答案 1 :(得分:0)

解决尝试#1:

    $('#nav a').click(function () {
        $(this).css('background-color', 'red');
        $('a.selected').css('background-color', 'red');
    });