我正在尝试获取一个页脚工具栏,包含两个按钮(上一个/下一个)和一个选择菜单。 如何让selectmenu使用全宽?
有关详细信息,请参阅jsFiddle example。
使用控制组使其看起来像我想要/需要的方式,除了它没有填满整个宽度。 我还尝试了fieldset,navbar,grid,但到目前为止还没有想要的结果。
<div data-role="controlgroup" data-type="horizontal" id="footerControlgroup" >
<button id="prev" class="ui-btn ui-corner-all ui-icon-carat-l ui-btn-icon-notext ui-mini">Prev</button>
<button id="next" class="ui-btn ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-mini">Next</button>
<select id="select" data-mini="true">
<option>pick me...</option>
</select>
</div>
答案 0 :(得分:1)
这可能会让你前进:
var next= document.getElementById('next');
var select= document.getElementById('select');
select.style.width=
(select.parentNode.offsetWidth -
next.getBoundingClientRect().right
)+'px';
答案 1 :(得分:1)
Rick指出我正确的方向,谢谢。
以下是完整的解决方案:jsFiddle。
解决方案的关键部分:
var select = $("#mySelect");
var cWidth = 0;
select.closest(".ui-controlgroup-controls").children().not(".ui-select")
.each(function() {
cWidth += $(this).outerWidth();
$(this).outerHeight( select.closest(".ui-select").height() +0.5 );
});
select.closest(".ui-select").find(".ui-btn")
.outerWidth( select.closest("[data-role='controlgroup']").width() - cWidth -1);
它处理的棘手部分:
如果您感兴趣:jQuery Mobile选择菜单的结构:
原生选择
div data-role=controlgroup
div .ui-controlgroup-controls
button #prev .ui-btn
button #next .ui-btn
div .ui-select
div #<selectId>-button .ui-btn <== adjust width
span <text of first item>
select #<selectId> <-- starting point
自定义选择
div data-role=controlgroup
div .ui-controlgroup-controls
button #prev .ui-btn
button #next .ui-btn
div .ui-select
a #<selectId>-button .ui-btn <== adjust width
span <text of first item>
select #<selectId> <-- starting point
div #<selectId>-listbox-placeholder