Javascript 优化(几乎最小化)jqueryui菜单的宽度
我有一个在运行时生成的AJAX。它生成的HTML是 但是我不知道如何计算菜单的最小宽度。目前,该菜单横跨其容器的整个宽度,因此几乎与网页一样宽。我尝试了几种方法,例如:Javascript 优化(几乎最小化)jqueryui菜单的宽度,javascript,jquery,html,jquery-ui,firefox,Javascript,Jquery,Html,Jquery Ui,Firefox,我有一个在运行时生成的AJAX。它生成的HTML是 但是我不知道如何计算菜单的最小宽度。目前,该菜单横跨其容器的整个宽度,因此几乎与网页一样宽。我尝试了几种方法,例如: var minwidth = 40; /// dont work, the el has same width as body mymenu.children("li").each(function(ix,el) { console.log("ix=", ix, " el=", el, "
var minwidth = 40;
/// dont work, the el has same width as body
mymenu.children("li").each(function(ix,el) {
console.log("ix=", ix, " el=", el, " .firstChild=", el.firstChild);
var elw = el.firstChild.clientWidth;
console.log("ix=", ix, " elw=", elw);
if (minwidth<elw)
minwidth=elw;
});
然后浏览并在
右侧键入命令:三个字母和
,然后同时按Ctrl空格键;应该出现一个完成菜单,但它太宽了
(在图像中,菜单是灰色的,位于底部附近的
send command
按钮上方;在my中,它是在第215行之后内置的函数mom\u cmdkeypress
;菜单idHTML5 id实际上是commandcompletemenu\u id
,我的Javascript变量是menuel
而不是mymenu
)
简化JSFIDLE(MVCE)
这个JSFIDLE显示了HTML的相同问题
<h2> my menu </h2>
<div id='mymenudiv_id'>
<ul id='menu_id'>
<li>-</li>
<li>the_system</li>
<li>the_agenda</li>
</ul>
</div>
<h2 id='width_id'>-</h2>
我的菜单
-
和javascript:
var mymenu;
$(document).ready(function() {
mymenu = $("#menu_id");
var mywidth = 40;
mymenu.children("li").each(function(ix, el) {
console.log("menu-children ix=", ix, " el=", el);
var elw = $(el).width();
console.log("menu-children ix=",ix, " elw=", elw);
if (mywidth<elw)
mywidth = elw;
});
$("#width_id").html("mywidth="+mywidth.toFixed(0));
mymenu.menu({
select: function(ev, ui) {
console.log("menu-select ev=", ev, " ui=", ui);
}
})
})
var-mymenu;
$(文档).ready(函数(){
mymenu=$(“#menu_id”);
var-mywidth=40;
mymenu.children(“li”)。每个功能(ix,el){
console.log(“菜单子项ix=”,ix,“el=”,el);
var elw=$(el).width();
log(“菜单子项ix=”,ix,“elw=”,elw);
如果(MyWidth在我看来,似乎您缺少菜单的css。一个复制问题的MVCE示例会有所帮助。有很多javascript沙箱站点可以在几分钟内设置此功能。如果使用默认的,我仍然存在此问题。可能的重复项--看起来链接的问题有您想要的答案,我们也可以这样做。)I’我会关闭这一个对我来说听起来好像你缺少菜单的css。一个复制问题的MVCE示例会有所帮助。有很多javascript沙箱站点可以在几分钟内完成设置。如果使用默认的,我仍然有这个问题。可能的重复-,看起来链接的问题有你一直在寻找的答案好吧,把这个关上
./monimelt -Drun,web -W localhost.localdomain:8086/ -J 3
<h2> my menu </h2>
<div id='mymenudiv_id'>
<ul id='menu_id'>
<li>-</li>
<li>the_system</li>
<li>the_agenda</li>
</ul>
</div>
<h2 id='width_id'>-</h2>
var mymenu;
$(document).ready(function() {
mymenu = $("#menu_id");
var mywidth = 40;
mymenu.children("li").each(function(ix, el) {
console.log("menu-children ix=", ix, " el=", el);
var elw = $(el).width();
console.log("menu-children ix=",ix, " elw=", elw);
if (mywidth<elw)
mywidth = elw;
});
$("#width_id").html("mywidth="+mywidth.toFixed(0));
mymenu.menu({
select: function(ev, ui) {
console.log("menu-select ev=", ev, " ui=", ui);
}
})
})