单击li项目后。我将active属性设置为css类,但是li具有链接以转发另一个页面。活跃的CSS消失了吗?这该怎么做?我已使用localstorage来缓存我以前选择的li项目。我找不到任何解决方案。刷新后如何进行 Activity 类(class)设置?页面刷新后如何设置 Activity 类?

<script type="text/javascript">

$(document).ready(function () {

    $("li").click(function () {
        var id = $(this).attr("id");
        console.log(id);

        var selectedolditem = localStorage.getItem('selectedolditem');
        if (selectedolditem != null) {

            $('#' + selectedolditem).siblings().find("active").removeClass("active");
            $('#' + selectedolditem).addClass("active");
            localStorage.clear();
            return;

        }

        $('#'+id).siblings().find("active").removeClass("active");
        $('#' + id).addClass("active");
        localStorage.setItem("selectedolditem", id);

    });
});

最佳答案

您的代码存在问题,您尝试通过onclick检索它。那是错误的逻辑。正确的逻辑是:加载页面时,对其进行检索。单击li后,将其存储。使用find("active")时也会遇到问题,您需要使用类字符.,否则它将搜索标签名称为active而不是该类的元素。

$(document).ready(function () {
    $("li").click(function () {
        var id = $(this).attr("id");

        $('#' + id).siblings().find(".active").removeClass("active");
            //                       ^ you forgot this
        $('#' + id).addClass("active");
        localStorage.setItem("selectedolditem", id);
    });

    var selectedolditem = localStorage.getItem('selectedolditem');

    if (selectedolditem != null) {
        $('#' + selectedolditem).siblings().find(".active").removeClass("active");
        //                                        ^ you forgot this
        $('#' + selectedolditem).addClass("active");
    }
});

关于javascript - 刷新页面后如何使<li>添加CSS类事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17295024/

10-09 15:42
查看更多