1

我用 hashchange 事件插件制作了一些基本页面。但现在我想建造更大的东西,但找不到正确的方法来简单地完成它。

index.html 以动画登录框开头。如果您登录您的帐户,登录框会消失 - 哈希更改为#start;内容+页眉/页脚加载并淡入。这部分现在没有问题。

主要原因是在不离开 index.html 的情况下激活浏览器后退按钮。我使用 ajax 和哈希来存档这个。#start 在登录后加载主界面。#messages 加载消息界面。两者都有一些额外的脚本+动画,每次哈希更改时都必须触发。

我的问题一般是,我不知道如何访问子链接。例如:用户在#messages 中(ajax 加载/php/messages.php,淡入)。消息界面显示他的收件箱,底部有一个链接可以访问他的发件箱。链接有哪些选项?messages.php 等待 GET 请求,例如 ?s=n 用于新消息,?s=o 用于发件箱。我怎样才能做到这一点:激活浏览器后退按钮?

有没有办法将哈希更改为 #messages/outbox + 加载文件 /php/messages.php?s=o ?jquery 代码应该是什么样子的?对于主导航,我使用了开关功能,例如 'switch(hash) {case #start; 案例#messages}'; 这不是最好的解决方案,因为我会得到更多的链接/哈希。

任何建议/解决方案?

4

1 回答 1

1

如果您希望您的网址对用户有用,而不仅仅是提供返回按钮功能,我想您将始终需要查找网址。
考虑用户在您的页面打开时粘贴以前保存的 url,您希望将他们带到他们正在寻找的地方,对吗?
因此,考虑到这一点,我只关心更改哈希(当您想将其保持为历史/可书签状态时),然后在 hashchange 事件上处理页面和操作。如果您正在使用 hashchange 事件插件,您可能想看看jQuery BBQ: Back Button & Query Library,它“提供了一个完整的 .deparam() 方法,以及哈希状态管理和片段/查询字符串解析和合并实用程序方法。” 使它更容易。

于 2012-11-05T13:32:07.250 回答