您如何通过JS关闭任何打开的UIkit导航手风琴?

时间:2018-12-12 22:15:48

标签: javascript uikit accordion

默认情况下,单击UIkit导航手风琴子菜单行将在打开任何自己的子菜单时将其关闭。但是,如果单击非子菜单导航行,它不会关闭已经打开的子菜单。文档(https://getuikit.com/docs/nav#accordion)的执行方式相同。

我发现这种行为前后矛盾且不受欢迎。理想情况下,有一种UIkit.nav(element).reset();方法可以关闭所有打开的菜单项,但似乎不存在。

我的猜测是我需要使用内置的click事件,但是我不知道如何解决这个问题。 UIkit JS文档和示例很少而且相差甚远,这增加了挑战。

1 个答案:

答案 0 :(得分:0)

我的解决方法在这里... 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帮助我完善了索引。