在过去的几天里,我一直在敲我的头并搜索谷歌,但还没有找到一个可以接受的解决方案。我正在使用Twitter Bootstrap编写一个新网站。我们正在使用 Nav 类和内置的下拉功能,但是我们想要一个多列下拉列表而不是标准的单列下拉列表(我们有很多类别和子类别,我们想在下拉列表中显示并想要将其全部保留在屏幕上,而不会使下拉菜单变得超长并且必须滚动)。
要动态列化数据(在 a 中<ul>
),我正在使用 jquery.columnizer.js,这很棒。
问题是这样的:由于下拉菜单是隐藏的(通过display:none
)jQuery 无法获得下拉容器的尺寸。由于无法获取维度,因此分列器无法分列。
我尝试将 columnize 函数附加到导航项上的单击事件,这在第一次单击时不起作用(如果您打开和关闭菜单,它在随后的切换中起作用)。
我不想修改 Bootstrap Javascript,并且 columnizer 中似乎没有任何东西可以让我工作。那么,我们如何才能$('.myNavElements').columnize();
在 Bootstrap 下拉菜单显示后触发 columnize 函数(即)?
编辑:
根据接受的答案,适用的解决方案是:
$(".dropdown").addClass("open");
$('.dropdown-menu').columnize();
$('.dropdown').removeClass("open");