私は本当に奇妙な行動を経験しています。次のように、ページ (jQuery Mobile イベント "pagebeforeshow") に変更するときに関数を呼び出します。
$("#library").on("pagebeforeshow", function(event){
player.loadFiles();
});
私が呼び出す関数は次のようになります。
Player.prototype.loadFiles = function(dir) {
dir = dir == undefined ? 'file://~' : dir;
if(dir.indexOf(data.lastDir) != 0){
console.log("fired");
$("li.item").remove();
$.ajax({
url: 'http://' + data.ip + ":" + data.port + '/requests/browse.xml',
data: 'uri=' + encodeURIComponent(dir),
dataType: "xml",
success: function (data, status, jqXHR) {
if(dir.indexOf(data.lastDir) != 0){
var html = "";
$(data).find("element").each(function(){
html += '<li class="item">' + $(this).attr('name') + "</li>";
});
$("#filelist").append(html);
$(".item").addClass("ui-li ui-li-static ui-btn-up-a ui-first-child ui-last-child")
}
},
error: function (jqXHR, status, error) {
alert("fail")
}
});
data.lastDir = dir;
}
}
初めてページにアクセスすると、問題なく動作するようになりました。listitems を ul #filelist に追加し、変数を正しく設定します。ページを離れると、それらが再び追加されます。ただし、「解雇」はコンソールに表示されません。もう一度ページにアクセスしても追加されませんが、もう一度離れると追加されます。なぜこのように動作しているのかわかりません。ヒントがあればありがたいです!
stiller_leser