1

我正在寻找一种将我自己的应用程序数据(如currentQuestion, currentAnswer)绑定到历史记录对象的好方法。

我试图跟踪hashchange事件,但这变得复杂了。

我尝试使用 url 参数,但我希望拥有状态对象,其中包含历史堆栈上每个元素的一些条目,所以我必须有很多参数。

有没有办法将对象添加到历史堆栈?

4

2 回答 2

1

如果您使用 jquery mobile ajax 转换,您将可以访问所有页面上的相同全局 jquery 对象,您可以将数据附加到它,例如在您分配 currentQuestion 和 currentAnswer 的第一页中

$.currentQuestion = 'something';
$.currentAnswer = 'something';

在下一页上,您可以轻松访问这些变量

console.log($.currentQuestion);

这就是我在 jquery mobile 内的页面之间移动数据的方式

于 2013-07-11T08:21:56.803 回答
0

我找到了方法。您可以将变量插入历史堆栈:

        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”。如果它不在堆栈元素中(页面第一次加载时会发生什么),则插入它。稍后(当用户点击后退按钮时)您可以从那里检索它。

于 2013-07-14T08:56:46.903 回答