从一页到另一页的多级推送菜单状态

Multi-level push menu state from page to page

本文关键字:一页 菜单 状态 多级      更新时间:2023-09-26

我正在尝试使用我在这里找到的多级推送菜单:

http://tympanus.net/codrops/2013/08/13/multi-level-push-menu/

那里也有消息来源。我已经调整了源代码,使其能够以我想要的方式工作。我在php includes中有一些片段,这样当我从一页转到另一页时,就可以最小化部分的重新加载。

我无法坚持的一部分是左手边的实际菜单。当我点击链接时,菜单会消失/完全折叠。有人知道我如何调整它,以便在从一页导航到另一页时保存菜单状态吗?

谢谢!

他们的博客上建议在'_init'方法中将'this.open'更改为'true'。

_init : function() {
...
this.open = true;

然而,这对我不起作用!

在初始化时调用'_openMenu()'方法,就在'this'之后_init()'将展开菜单,但可能会给body click的事件侦听器带来问题。。。

function mlPushMenu( el, trigger, options ) {
    this.el = el;
    this.trigger = trigger;
    this.options = extend( this.defaults, options );
    // support 3d transforms
    this.support = Modernizr.csstransforms3d;
    if( this.support ) {
        this._init();
        this._openMenu();  // added
    }
}

第二种可能性:

如果你想"保存"确切的菜单位置,也许你可以使用以下jQuery多级推送菜单插件,然后在离开页面之前,确定当前菜单状态:

var $activeMenu = $( '#menu' ).multilevelpushmenu( 'activemenu' );

此后,您可以发布来自的任何数据(例如"id")

var menuID = $activeMenu.attr( 'id' );

转到下一页,并在其中使用它,使用"展开"方法再次查找和展开同一菜单级别。

$( '#menu' ).multilevelpushmenu( 'expand', $( '#' + menuID ) );