离开页面时执行jQuery append

时间:2013-09-29 13:28:48

标签: javascript jquery html jquery-mobile cordova

我正在经历一种非常奇怪的行为。当我改为页面时,我调用了一个函数(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

0 个答案:

没有答案