2015-01-26 45 views
0

我在將數據添加到Jquery Mobile上的非本機選擇選項菜單時遇到問題。這裏是我的代碼:Jquery-Mobile:將數據追加到非本機選擇選項菜單

在HTML

<select id="my-select" data-native-menu="false"></select> 

在javascript:

var len = results.rows.length; 
var s = ''; 
for (var i=0; i<len; i++){ 
$('#my-select') 
.html($("<option></option>") 
.attr("value",results.rows.item(i).id) 
.text(results.rows.item(i).name)); 
} 

所以,如果我刪除 「數據本機菜單=」 假 「」,該代碼是完美的作品。我的代碼有什麼問題?

謝謝

回答

1

你需要告訴JQM刷新/重建部件更改selectmenu中的選項任何時候:

http://api.jquerymobile.com/selectmenu/#method-refresh

$('#my-select').selectmenu("refresh", true); 

僅供參考。通過在for循環中使用html($(「」)...),每次都覆蓋所有選項。相反,使用.empty()清除循環前的現有選項,並使用append()添加新選項。

爲了使之更有效率,創造的所有選項字符串,並在循環後其追加到DOM一次:

var opts = ''; 
for (var i=0; i<len; i++){ 
    opts += '<option value="' + results.rows.item(i).id + '">' + results.rows.item(i).name + '</option>'; 
} 
$('#my-select').empty().append(opts).selectmenu("refresh", true); 
+0

是的,感謝您的幫助。它也在搜索過濾器菜單中工作。 – Mkhuda 2015-01-27 06:06:39