0

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

我已经使用 pageshow 事件来加载产品列表,由于某些情况我无法使用pageinit().

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

我不想pageshow()在用户单击详细信息页面上的后退按钮时运行,除了这个后退按钮我想pageshow()从其他任何地方运行。

请告诉我如何解决这种情况。

4

1 回答 1

1

下面的示例使用一个变量来检查是否单击了后退按钮以查看#products页面。一旦用户使用后退按钮#products来回导航,它将提醒已查看,因此您可以再次停止重新加载数据。#details#products

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

演示

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!');
 }
});
于 2013-05-08T12:36:21.777 回答