jQuery Mobile:按下后退按钮时清除页面

时间:2014-08-08 17:53:29

标签: javascript android html jquery-mobile

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

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

但是当调用页面时它会工作,但是当我从page_two返回该页面时也是如此。我想在Android中使用类似onDestroy()的东西。它存在吗?

非常感谢你。

1 个答案:

答案 0 :(得分:2)

您需要使用两个事件

  1. navigate使用jQM后退按钮data-rel="back"或浏览器的后退按钮确定用户是否正在后退

    var direction = "";
    
    $(window).on("navigate", function (e, data) {
       direction = data.state.direction == "back" ? true : false;
    });
    
  2. pagebeforechange(jQM< = 1.3)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;
        }
    });
    
  3.   

    <强> Demo