当用户按下phonegap ios中当前页面上的后退按钮时,如何取消上一页的页面显示事件

时间:2013-05-08 11:13:03

标签: ios cordova jquery-mobile

我正在开发一个使用iScroller显示产品列表的应用

由于某些情况我无法使用pageinit(),因此我使用了pageshow事件来加载产品列表。

问题是,当我点击任何产品时,它会显示产品详细信息页面,但是当我点击后退按钮时,在产品详细信息页面上,它再次调用产品列表页面的pageshow()

当用户点击详细信息页面上的后退按钮时,我不想运行pageshow(),而其他后退按钮我希望从其他任何位置运行pageshow()

请告诉我如何解决这个问题。

1 个答案:

答案 0 :(得分:1)

以下示例使用变量检查是否单击了后退按钮以查看#products页面。一旦用户从#products导航到#details并使用后退按钮返回,它将警告#products已被查看,因此您可以再次停止重新加载数据。< / p>

但是,如果用户导航到其他页面并返回#products页面,它将正常工作,因为它尚未被查看。

  

<强> Demo

var viewed = false;

$(document).on('click', '.backbtn', function () {
 viewed = true;
});

$(document).on('pagebeforeshow', '#products', function () {
 if (viewed) {
  alert('page has been viewed');
  viewed = false;
 }
 else {
  alert('first visit!');
 }
});