6

我的任务是在刷新页面时突出显示所选菜单。为此,我想使用 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');
                }
            });
4

3 回答 3

4

为每个菜单项提供 id。

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

设置 cookie

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

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

于 2013-04-03T09:03:10.627 回答
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');
于 2013-04-03T08:16:23.397 回答
1

尝试使用 jQuery 将 cookie 设置为:

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

您可以在这里阅读更多内容:如何使用 jQuery 设置/取消设置 cookie?

于 2013-04-03T08:05:44.603 回答