Javascript jQuery Mobile中带按钮的全宽选择菜单
我试图得到一个页脚工具栏,由两个按钮(上一个/下一个)和一个选择菜单组成。 如何使selectmenu使用全宽 有关详细信息,请参阅 使用控制组可以使它看起来像我想要/需要的那样,只是它不能填充整个宽度。 我还尝试了fieldset、navbar和grids,但到目前为止还没有达到预期的效果Javascript jQuery Mobile中带按钮的全宽选择菜单,javascript,jquery-mobile,select,Javascript,Jquery Mobile,Select,我试图得到一个页脚工具栏,由两个按钮(上一个/下一个)和一个选择菜单组成。 如何使selectmenu使用全宽 有关详细信息,请参阅 使用控制组可以使它看起来像我想要/需要的那样,只是它不能填充整个宽度。 我还尝试了fieldset、navbar和grids,但到目前为止还没有达到预期的效果 <div data-role="controlgroup" data-type="horizontal" id="footerControlgroup" > <button id="p
<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>
上
下一个
选择我。。。
这可能会让您继续:
var next= document.getElementById('next');
var select= document.getElementById('select');
select.style.width=
(select.parentNode.offsetWidth -
next.getBoundingClientRect().right
)+'px';
瑞克给我指出了正确的方向,谢谢 以下是完整的解决方案: 解决方案的关键部分是:
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);
它处理的棘手部分包括:
- jquerymobile插入各种元素以增强选择功能
- jQuery Mobile有两种类型的选择菜单:原生菜单或自定义菜单(由JQM增强的选项列表)
- jQuery Mobile select可以是全尺寸,也可以是data mini=“true”
- 在页脚内部使用时,遍历略有不同(尽管DOM结构相同)
- 我将其设置为通用,以便在选择之前或之后的元素数量(例如按钮)是可变的
- 这是一个静态函数,因此我将其绑定到.resize以在调整浏览器大小时调整宽度
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
div数据角色=控制组
ui控件组控件
按钮#上一个用户界面btn
按钮#next.ui btn
分区用户界面选择
jQuery Mobile在页脚导航中表单元素上的样式/标记的一部分是div#-button.ui btn,它将典型的全宽下拉列表修改为浮动到左侧或右侧的内联下拉列表。任何定制都需要使用一些CSS和简单的html结构,当您将controlgroup放在主内容部分时,会得到相同的结果。所以,不确定它是否是特定于页脚的。你心目中的CSS/简单HTML是什么?嘿,谢谢你的赞扬,但这比我想象的要复杂得多。干得好!