你如何通过 JS 关闭任何打开的 UIkit 导航手风琴?
How do you close any open UIkit nav accordions via JS?
默认情况下,单击 UIkit 导航手风琴子菜单行将关闭任何已打开的子菜单,因为它会打开自己的子菜单。但是,如果您单击非子菜单导航行,它不会关闭已经打开的子菜单。文档 (https://getuikit.com/docs/nav#accordion) 执行相同的方式。
我发现这种行为不一致且不可取。理想情况下,应该有一个 UIkit.nav(element).reset();
方法来关闭所有打开的菜单项,但 none 似乎存在。
我的猜测是我需要使用内置的 click
事件,但我不知道如何处理它。 UIkit JS 文档和示例少之又少,增加了挑战。
我的解决方法在这里... https://codepen.io/neokio/pen/OrMNZY ...基本上涉及通过...找到索引...
var open_index = $('#left-col > div > ul > li.uk-open').index('.uk-parent');
...然后是UIkit的原生切换方法...
UIkit.nav('.uk-nav-default').toggle(open_index, true);
感谢 gitter.im 上的@zzseba78 帮助我完善索引。
默认情况下,单击 UIkit 导航手风琴子菜单行将关闭任何已打开的子菜单,因为它会打开自己的子菜单。但是,如果您单击非子菜单导航行,它不会关闭已经打开的子菜单。文档 (https://getuikit.com/docs/nav#accordion) 执行相同的方式。
我发现这种行为不一致且不可取。理想情况下,应该有一个 UIkit.nav(element).reset();
方法来关闭所有打开的菜单项,但 none 似乎存在。
我的猜测是我需要使用内置的 click
事件,但我不知道如何处理它。 UIkit JS 文档和示例少之又少,增加了挑战。
我的解决方法在这里... https://codepen.io/neokio/pen/OrMNZY ...基本上涉及通过...找到索引...
var open_index = $('#left-col > div > ul > li.uk-open').index('.uk-parent');
...然后是UIkit的原生切换方法...
UIkit.nav('.uk-nav-default').toggle(open_index, true);
感谢 gitter.im 上的@zzseba78 帮助我完善索引。