我只是找不到令人满意的方式来处理浏览器的历史记录。当然有像History.js这样可爱的插件,它适用于较小的东西。但是让我举个例子:
我有一个多页表单,要求用户提供不同的东西。每次提交到下一页后(其实也一样,只是根据 HTTP-POST 变量改变视图),页面上有一些动画和变化:
- 主要内容更改为下一个表单(带有slideUp/slideDown)
- 进度条用动画改变它的状态
- 在此栏下方,有关某些输入的一些信息淡入
所以现在这很基本,但我已经在苦苦挣扎,因为所有动画(最后两部分)在每个状态(不同的 div,不同的输入源)上都是不同的,我不知道如何让它们如此通用,我不必单独指定它们。
不过我可以忍受,但是当用户点击后退按钮时,我必须再次重新定义所有这些动画(反向)。内容加载肯定没问题,它基本上只是用 ajax-load 重新加载文件:
- 我
pushstate
将输入数据作为stateObj
on submit执行 - 所以我可以在绑定的“statechange”事件中执行内容加载
尽管如此,其余的让我发疯。