我正在寻找一种将我自己的应用程序数据(如currentQuestion
, currentAnswer
)绑定到历史记录对象的好方法。
我试图跟踪hashchange
事件,但这变得复杂了。
我尝试使用 url 参数,但我希望拥有状态对象,其中包含历史堆栈上每个元素的一些条目,所以我必须有很多参数。
有没有办法将对象添加到历史堆栈?
我正在寻找一种将我自己的应用程序数据(如currentQuestion
, currentAnswer
)绑定到历史记录对象的好方法。
我试图跟踪hashchange
事件,但这变得复杂了。
我尝试使用 url 参数,但我希望拥有状态对象,其中包含历史堆栈上每个元素的一些条目,所以我必须有很多参数。
有没有办法将对象添加到历史堆栈?
如果您使用 jquery mobile ajax 转换,您将可以访问所有页面上的相同全局 jquery 对象,您可以将数据附加到它,例如在您分配 currentQuestion 和 currentAnswer 的第一页中
$.currentQuestion = 'something';
$.currentAnswer = 'something';
在下一页上,您可以轻松访问这些变量
console.log($.currentQuestion);
这就是我在 jquery mobile 内的页面之间移动数据的方式
我找到了方法。您可以将变量插入历史堆栈:
var urlh = $.mobile.urlHistory;
if( "factId" in urlh.stack[urlh.activeIndex] ) {
// load
cp10.score.currentFactId = urlh.stack[urlh.activeIndex].factId;
} else {
// store fact id in history object
urlh.stack[urlh.activeIndex].factId = cp10.score.currentFactId;
}
在这里,我插入了一个变量“factId”。如果它不在堆栈元素中(页面第一次加载时会发生什么),则插入它。稍后(当用户点击后退按钮时)您可以从那里检索它。