これがタイミングの問題であることは明らかです。私は開発中のjQueryモバイルアプリを持っています。リストビューにアイテムを追加する標準的な方法を行っています。refresh
次に、アイテムが追加された後に呼び出します。はい、html の先頭に jQuery と jQuery mobile があり、'pageinit'
代わりにイベントを使用してい$(document).ready()
ます。ソースは次のとおりです。
JS
GetApps: function () {
$('#manage-apps-list').empty();
$.get('../../../config.xml', function (data) {
$(data).find('app').each(function () {
var $this = {};
$this = $(this);
$('#manage-apps-list').append(
$('<li/>').append(
$('<a/>').attr('href', "#app-settings").attr('data-id', $this.find('id').text()).html($this.find('title').text()).off('click').on('click', function () {GetAppDetail($(this).attr('data-id'));})
)
);
});
});
$('#manage-apps-list').listview('refresh');
}
HTML
<div id="manage-apps" data-role="page" data-theme="d">
<div data-role="content">
<a href="#settings" data-role="button" data-mini="true" data-inline="true">Back</a>
<h2>Manage Apps</h2>
<ul id="manage-apps-list" data-role="listview" data-inset="true"></ul>
</div>
</div>
これは最初に表示されるページではなく、サブページです。結果は次のとおりです。
私は自分のアプリで何度もこれを行ってきましたが、常に問題なく動作します。私は同じバージョンの$
とを使用しています$.mobile
SOでこれについて他にも多くの質問を見てきましたが、それらはすべて呼び出しがありませrefresh
ん...