我尝试通过JavaScript将<option data-placeholder=true>placeholder value</option>
添加到现有的JQuery Mobile selectmenu()
。
我没有使用占位符,如JSFiddle(版本8)所示:http://jsfiddle.net/nyluje/jg5cgw76/8/
为了添加占位符,我在函数flipswitchChangesSingleSelToMultipleSel
的开头添加了以下行:
targetSelect = $('body').find('select[id='+selectContainerId+']');
if($(targetSelect).find('[data-placeholder="true"]').length==0){
phOption = document.createElement('option');
$(phOption).attr('data-placeholder','true');
$(phOption).text("Do a choice");
$(targetSelect).prepend(phOption); }
我用它更新了JSFiddle到新版本(版本9): http://jsfiddle.net/nyluje/jg5cgw76/9/
占位符&#34;做出选择&#34;确实按预期显示,但是当选择完成时,它会显示:&#34;未捕获错误:在初始化之前无法调用listview上的方法;试图调用方法&#39;销毁&#39;&#34;在调试控制台中。
我环顾四周,这似乎是一个常见问题,解决方案建议通过添加listview().listview('refresh')
来解决它。所以我试图抓住<ul>
元素:<ul class="ui-selectmenu-list ui-listview" id="select-menu" role="listbox" aria-labelledby="select-button">
元素并将其应用于listview().listview('refresh')
,但它不起作用。
有什么想法吗?
答案 0 :(得分:0)
解决了我的问题,我已经更新了JSFiddle(第10版):http://jsfiddle.net/nyluje/jg5cgw76/10/
我添加了:selectmenu()
之前有关占位符的代码,<{1}} 之后:
selectmenu('refresh')