超时功能的性能

时间:2012-09-10 08:07:12

标签: javascript jquery performance settimeout zepto

我有一个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);​

我的问题是:有没有其他明显的方法可以实现这一点,我错过了? 这样的函数如何影响网站的性能,请记住它应该在各种设备上运行?

非常感谢。

0 个答案:

没有答案