我有一个 JS 问题,我必须检查水平 ul 以了解该列表宽度的 li 何时超过最大宽度,然后减少这些元素的侧边距以使所有 li 适合。
问题是添加 li 时我无法触发事件,仅仅是因为我无法控制将 li 添加到 ul 的所有代码。
所以我的选择是每秒循环检查 li 的总宽度几次,如下所示:
function UpdateNavBar(initialX) {
var w = 0;
var maxW = 100;
var visibleLis = $(".navigationbar ul li.menuitem");
$.each(visibleLis, function (i, e) {
return w += $(e).width();
});
if (w >= maxW) {
--xPadding;
$(".navigationbar ul li.menuitem a").css({ "padding-left": xPadding, "padding-right": xPadding });
}
w = 0;
setTimeout(UpdateNavBar, 100, initialX);
}
var xPadding = parseInt($(".navigationbar ul li.menuitem a").css("padding-left").replace("px", ""));
UpdateNavBar(xPadding);
我的问题是:还有其他明显的方法可以实现我所缺少的吗?像这样的功能将如何影响网站的性能,请记住它旨在在各种设备上运行?
非常感谢。