☰
由于某些原因,当点击一个菜单项展开它的子菜单时,子菜单打开和关闭事件都被调用了。
这样就不可能保持子菜单打开和导航。
第一种方法:
在mage/menu.js 中_init方法中mediaCheck({})前添加this._toggleDesktopMode()最终如下图
第二种方法:
元素选择器使用.ui-state-active类来确定子菜单是打开还是关闭。
由于某种原因,检查:has(.ui-state-active)始终为true,即使元素实际上没有类。
我只是考虑使用 aria-expanded 属性的值来确定子菜单是关闭还是打开。
在mage/menu.js _toggleMobileMode方法中
用
var self = this;
if($(event.target).next('.ui-menu').attr('aria-expanded') == 'true') {
self.collapseAll(event, true);
}代替
this.collapseAll(event, true);最终如下图