我正在开发一个使用iScroller显示产品列表的应用
由于某些情况我无法使用pageinit()
,因此我使用了pageshow事件来加载产品列表。
问题是,当我点击任何产品时,它会显示产品详细信息页面,但是当我点击后退按钮时,在产品详细信息页面上,它再次调用产品列表页面的pageshow()
。
当用户点击详细信息页面上的后退按钮时,我不想运行pageshow()
,而其他后退按钮我希望从其他任何位置运行pageshow()
。
请告诉我如何解决这个问题。
答案 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!');
}
});