我正在开发一个使用 iScroller 显示产品列表的应用程序,
我已经使用 pageshow 事件来加载产品列表,由于某些情况我无法使用pageinit()
.
问题是,当我单击任何产品时,它会显示产品详细信息页面,但是当我单击返回按钮时,它会在产品详细信息页面上再次调用pageshow()
产品列表页面。
我不想pageshow()
在用户单击详细信息页面上的后退按钮时运行,除了这个后退按钮我想pageshow()
从其他任何地方运行。
请告诉我如何解决这种情况。
我正在开发一个使用 iScroller 显示产品列表的应用程序,
我已经使用 pageshow 事件来加载产品列表,由于某些情况我无法使用pageinit()
.
问题是,当我单击任何产品时,它会显示产品详细信息页面,但是当我单击返回按钮时,它会在产品详细信息页面上再次调用pageshow()
产品列表页面。
我不想pageshow()
在用户单击详细信息页面上的后退按钮时运行,除了这个后退按钮我想pageshow()
从其他任何地方运行。
请告诉我如何解决这种情况。
下面的示例使用一个变量来检查是否单击了后退按钮以查看#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!');
}
});