Jquery 超高速水平菜单。如何测量宽度

Jquery 超高速水平菜单。如何测量宽度,jquery,menu,width,menuitem,superfish,Jquery,Menu,Width,Menuitem,Superfish,我正在使用superfish在我的网站上创建一个水平菜单 菜单项总是会有所不同,因为内容非常动态。菜单项不应具有固定宽度 当显示足够多的菜单项以填满整个网站时,将显示最后一个名为“更多项”的菜单 如何测量每个菜单项(li标签)的宽度,以便限制显示的项目 问题是我不能依靠某种字体来实现这一点。字体必须是,访问者计算机上可用的任何字体 感谢您的输入这里有一种方法 $(function() { $('.sf-menu').superfish(); var tempWidth = 0

我正在使用superfish在我的网站上创建一个水平菜单

菜单项总是会有所不同,因为内容非常动态。菜单项不应具有固定宽度

当显示足够多的菜单项以填满整个网站时,将显示最后一个名为“更多项”的菜单

如何测量每个菜单项(li标签)的宽度,以便限制显示的项目

问题是我不能依靠某种字体来实现这一点。字体必须是,访问者计算机上可用的任何字体


感谢您的输入这里有一种方法

$(function() {
    $('.sf-menu').superfish();

    var tempWidth = 0,
        // width of our layout minus width of our "More Items..." menu
        maxWidth = $('#container').outerWidth() - $('#more').outerWidth(); 

    // get any menu items that extend past our maxWidth
    var $moreItems = $('.sf-menu > li').not('#more').filter(function() {
        tempWidth += $(this).outerWidth();
        if (tempWidth >= maxWidth) return true;
        else return false;
    });

    // if we have items extending past, add those items to "More Items..."
    if ($moreItems.length > 0) {
        $('#more').show().find('ul').append($moreItems);
    } else {
        $('#more').hide();
    }
});
在中间部分,我将每个菜单项的宽度相加,当达到阈值(最大宽度)时,我将返回这些菜单项,以便将它们添加到“更多项”菜单(在最后一步)