我正在尝试制作一个可折叠的子菜单,当没有足够的空间容纳所有项目时,会将溢出的项目放入Bootstrap样式的下拉菜单中。
我通过检查子菜单是否大于某个高度来做到这一点。如果它高于此设定高度,则认为它溢出了,因此需要运行它的功能。但是,我正在从事的项目无法真正设置元素的高度。这些可能会随着时间而改变,如果发生某些更改,遍历所有代码将是维护的噩梦。
那么如何检查元素的高度是否高于其自身的高度(我猜是“初始”)?
设置if(menuHeight >= menuHeight)
将导致Maximum call stack size exceeded
错误,并使Chrome中的标签页崩溃。
示例:
var CollapseMenu = {
init: function(parent) {
var menu = parent;
var menuHeight = menu.height(); // Using jQuery here; vanilla JS could also work
if(menuHeight >= 64) // This is the set height I want to avoid
// ...
} else {
// ...
}
}
}
$(function() {
var submenu = $('.submenu');
if(submenu.length) {
CollapseMenu.init($('.submenu ul'));
}
$(window).resize(function() {
if(submenu.length) {
CollapseMenu.init($('.submenu ul'));
}
});
});