JavaScriptコードによって作成されたリスト項目を持つリストビューがあります。コードを初めて実行すると、正常に動作します。2 回目に実行すると、リストが作成されて正常に動作しますが、jQuery Mobile のスタイルは失われています。他のスレッドを検索すると、次のコード行を別の場所で試してみましたが、役に立ちませんでした。
$('#ul').listview('refresh');
と
$('#ul').listview().listview('refresh');
と
$('#ul').trigger('create');
私のリストビューは、次のようにhtmlで宣言されています:
<div ID="myUL" class="nav">
<ul data-role="listview" ID="ul"></ul>
</div>
次の JavaScript はリスト項目を作成します。
$.ajax( {
async: 'false',
type:'POST',
url:'[redacted]',
contentType: "text/xml",
dataType: "xml",
data: soapRequest,
success:function processSuccess(data, status, req) {
var returnString = $(req.responseXML).find("GetMyWebServiceResult").text().split("|");
$("#ul").children().remove('li');
for (var i = 0; i < length; i++) {
var addressString = returnString[i].split(";");
//create list item
var myList = document.getElementById("ul");
var liSold = document.createElement("li");
var aTag = document.createElement('a');
aTag.innerHTML = addressString[0];
aTag.setAttribute('onClick','somefunction(i)');
aTag.setAttribute('data-transition','slide');
liSold.appendChild(aTag);
myList.appendChild(liSold);
}
$('#ul').listview('refresh');
},
error: function(e){
alert('error 2: ' + e);
}
})
また、違いが生じる場合は、phonegap (cordova) アプリでこれを行っています。
EDIT追加の詳細:リストが再作成されると、ページdivはフォーカスされなくなります。また、js コード スニペットは、Web サービスが正常に使用されたときに呼び出される関数内にあります。