我正在开发一个混合应用程序,其中包含很多“后续”页面(例如:主页->第1页->第2页->第3页)。所有这些页面的标题数据设置为data-add-back-btn = true,并且它们通过AJAX加载数据。问题是,当我按下“后退”按钮时,我想清除页面的内容,因为当我再次进入该页面时,它将显示之前的数据,直到加载新数据为止。

$('#page_one').on('pagebeforechange', function(){
    //clear
    //reload ajax
}


但是在调用页面时它是可以的,但是当我从page_two返回该页面时,它也可以。我想在Android中使用类似onDestroy()的方法。是否存在?

非常感谢你。

最佳答案

您需要利用两个事件


navigate确定用户是使用jQM后退按钮data-rel="back"还是浏览器的后退按钮进行导航。

var direction = "";

$(window).on("navigate", function (e, data) {
   direction = data.state.direction == "back" ? true : false;
});

pagebeforechange(jQM pagecontainerbeforechange(jQM> = 1.4)。无论是否使用后退按钮,此事件都将返回您正在导航的页面的对象.toPage。在他的阶段,您可以替换toPage的内容。

$(document).on("pagecontainerbeforechange", function (e, data) {
    if (direction && $.type(data.toPage) == "object") {
        /* do your magic here */
        $(".ui-content", data.toPage).append("<p>Back button was hit</p>");
        /* don't forget to reset direction var */
        direction = false;
    }
});




  Demo

10-05 20:33
查看更多