我需要动态调整下拉菜单主导航栏的大小,以便调整大小以适应导航菜单项名称中不同长度的字符。以下是我目前的代码:
$(document).ready(function(){
var wNav = $("#navigation").outerWidth();
var wLiTotal = 0;
$("#navigation>ul>li").each(function(){
wLiTotal += $(this).outerWidth();
if((wLiTotal > wNav)||(wLiTotal < wNav)){
wNav = wLiTotal +3;
};
});
});
问题是,即使我得到所有li的总宽度,由于某种原因它不会将wNav重置为该宽度,我不知道为什么。提前感谢您的任何帮助。
答案 0 :(得分:1)
这是因为你只计算外部宽度而不是设置它。
$(document).ready(function(){
var wNav = $("#navigation").outerWidth();
var wLiTotal = 0;
$("#navigation>ul>li").each(function(){
wLiTotal += $(this).outerWidth();
if((wLiTotal > wNav)||(wLiTotal < wNav)){
wNav = wLiTotal +3;
};
//setting outer width
$("#navigation").outerWidth(wNav);
});
});
使用此插件jquery.dimensions.etc.js http://bitovi.com/blog/2010/06/set-inner-outer-width-height-with-jquery-dimensions-etc-plugin.html
答案 1 :(得分:1)
$(document).ready(function() {
var wNav = $("#navigation").outerWidth();
var wLiTotal = 0;
$("#navigation>ul>li").each(function() {
wLiTotal += $(this).outerWidth();
if ((wLiTotal > wNav) || (wLiTotal < wNav)) {
wNav += wLiTotal + 3; // you've increase wNav with its previous value
};
});
$("#navigation").width(wNav); // set new wNav as new width
});