0

jQuery

$(document).ready(function() {
    $("a.menu").click(function() {
    $("#mp-menu").show();
    });
});

HTML 代码

<a class="icon icon-display" class ="menu" href="#">Test</a>

大家好。我使用上面的代码从浏览器一侧弹出菜单 div。我想要的是,一旦单击激活菜单后弹出菜单,即使单击页面上的另一个链接并转到另一个页面,它也应该保持停靠在屏幕的一侧。如何才能做到这一点?

4

3 回答 3

0

当菜单打开或关闭时,设置一个指示菜单状态的cookie。在任何页面的页面加载时,检查 cookie 并设置菜单的状态。

于 2013-11-11T14:04:47.923 回答
0

为此,您将使用 Iframe 或异步生成内容。这样即使您单击内容上的链接,它也只会更改内容而不是整个页面,缺点是 URL,但可以通过使用 history.pushState 或 replaceState 来修复,并针对定向访问 URL 操作 onload。

如果你真的坚持你的目标和方式,你可以设置一个跨页面的“标志”来跟踪不同页面的事件,例如 cookie 和 session。我建议最好使用 cookie。轻松使用 jQuery cookie。

    $(文档).ready(函数() {
        var flag = $.cookie('flag');
        $("a.menu").click(function() {
            // 这是用于切换菜单栏
            如果(!标志){
            // 未设置标志时,单击按钮时显示菜单
                $("#mp-menu").show();
                $.cookie('flag', true);
            } 别的 {
                // 否则隐藏
                $("#mp-menu").hide();
                $.removeCookie('flag');
            }
        });
        如果(标志){
            // 移除 cookie,所以它会在点击按钮时设置
            // 因为只有在未设置标志时才会显示菜单
            // 所以删除它很重要
            $.removeCookie('flag');
            $("a.menu").click();
        }
    });
    

于 2013-11-11T15:16:22.410 回答
0

这将用于localStorage保留菜单的状态,但它不会处理它关闭,因为您没有提到导致这种情况发生的原因......

$(document).ready(function() {
    $("a.menu").click(function() {
        $("#mp-menu").show();
        localStorage.setItem("show-mp-menu", true);
    });
    if (localStorage.getItem("show-mp-menu")) {
        $("#mp-menu").show();
    }
});

但是,您触发关闭或隐藏菜单,它需要做这样的事情......

$("#mp-menu").hide();
localStorage.setItem("show-mp-menu", false);
于 2013-11-11T14:14:34.390 回答