活动类没有设置为具有特定索引()的`li`?

时间:2013-12-02 09:21:23

标签: javascript jquery html css

我有UL LI个菜单liul个孩子。

每次点击根li时,我都会向其添加.active,然后将li索引()保存到Cookie,

问题是我将index()保存到cookie后,active类设置为子索引() 例如,myclicked root li为7。

但是css会转到li 6的子项,而活动类会从索引6添加到第一个li子项, 但我希望找到索引为7的根li

我的代码是:

$(function () {

        var foo = $.cookie("test");

        if (foo == null) {
            foo = 0;
        }

        $("#MenuArchiv").find("li").removeClass("activ");

        $("#MenuArchiv li").eq(foo).addClass("activ");


        $("#MenuArchiv li").click(function () {
            foo = $(this).index();
            $("#MenuArchiv").find("li").removeClass("activ");
             $(this).addClass("activ");
             $.cookie("test", foo, { expires: 10 });
        });
});

希望了解我的意思:))

1 个答案:

答案 0 :(得分:1)

那是因为你使用index()的方式为你提供了父元素中该元素的index()。但是你在一个包含所有li的对象上使用eq()(甚至是其他li元素中的那些。所以你有两个完全不同的数组,你想要使用相同的索引。

使用索引()更改您的行 - 调用以下内容并且它应该有效:

foo = $("#MenuArchiv li").index(this);

这与你对eq()的做法相同,它要求所有li元素的对象中该元素的索引