【问题标题】:How to set the id of a div as cookie?如何将 div 的 id 设置为 cookie?
【发布时间】:2013-03-24 19:10:36
【问题描述】:

我的任务是在刷新页面时突出显示选定的菜单。为此,我想使用 cookie。 html代码是

<div class="menuBar">
            <div class="menuHeader ui-corner-top">
             <span><a href="#" onclick="Home()" id="home">Home</a></span>
            </div>
            <div class="menuHeader ui-corner-top">
             <span><a href="#" onclick="NewTransaction()" id="newtransaction">New Transaction</a></span>
            </div>
</div>

Javascript 文件是

function Home() {
            window.location.href = "../../home/welcome";
        }
        function NewTransaction() {
            window.location.href = "../../EnergyCatagory/index";
        }

但是我有一个代码可以将菜单设置为选中状态。但这不是一个好方法。如何在刷新时将所选菜单的值传递给页面? 这是高亮菜单的代码

 $(document).ready(function () {
                var currentUrl = window.location.href;
                if (currentUrl.indexOf("home/welcome") !== -1) {
                    $("#home").parent().parent().addClass('menuHeaderActive');
                }
                else if (currentUrl.indexOf("EnergyCatagory/index") !== -1) {
                    $("#newtransaction").parent().parent().addClass('menuHeaderActive');
                }
                else if (currentUrl.indexOf("portfolio/Index") !== -1) {
                    $("#portfolio").parent().parent().addClass('menuHeaderActive');
                }
            });

【问题讨论】:

  • 我编辑了我的代码@MatthewAgustin
  • @MatthewAgustin,任何代码都可以是“非语义的”吗?对我来说,答案是否定的。一座山是非语义的,洗衣篮也是如此。

标签: javascript jquery html cookies


【解决方案1】:

为每个菜单项提供 ID。

然后在菜单项的onclick()函数中将该id设置为cookie。

设置 cookie

$.cookie("selectedId", $(this).attr('id'));

在 document.ready 函数中,将选定的类添加到具有从 cookie 中获取的 id 的元素中

【讨论】:

    【解决方案2】:

    你可以这样实现:

    function goToLocation(sLocation, id) {
       $.cookie("activediv", id);
       window.location.href = sLocation;
    }
    

    在 html 中:

    <a href="#" onclick="goToLocation('../../home/welcome', 'home')" id="home">Home</a>
    

    在 jQuery 中准备好了:

    $('#' + $.cookie("activediv")).parent().parent().addClass('menuHeaderActive');
    

    【讨论】:

    • @ChrisMoutray- 在这里我得到一个像这样的错误 TypeError: $.cookie is not a function [Break On This Error] var a=($.cookie("activediv"));但我有 cookie 插件
    • @victor-Here I got an error like this TypeError: $.cookie is not a function [Break On This Error] var a=($.cookie("activediv"));但我有 cookie 插件
    • 关于 jQuery 的 cookie 的链接在下面的评论中。我只是使用你的信息和关于 cookie 的信息来编译一些结果。
    • @Chris Moutray 感谢您纠正我的回答 - 功能顺序非常重要。
    【解决方案3】:

    尝试使用jQuery设置cookies:

    $.cookie("name", "value");
    

    您可以在这里阅读更多内容:How do I set/unset cookie with jQuery?

    【讨论】:

    • 我知道这个。但是如何在我的项目上实现这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2011-11-25
    • 2013-09-12
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多