0

我录制的这个截屏视频最好地描述了我的问题:http ://www.youtube.com/watch?v=aI-p_jqzOdU

我正在使用 jQuery Address 插件进行 Ajax 深度链接。对于那些不知道 jQuery 地址是如何工作的人来说,它是通过使用该change()方法监听散列变化来工作的。按下后退按钮并按下指向前一页 URL 的超链接的行为应该相同,因为它们调用相同的事件处理程序。

这是伪代码:

$address.change(function(event) {
    if (event.value != '/') { // is the image link
        Get the URL to be loaded
        Create an overlay, append it to body and set its height, width, opacity
        Put overlay on top of gallery
        Load URL into overlay then fade it in
        Set BODY to overflow: hidden
    } else { // is the gallery link
        Set BODY to overflow: auto
        Fade out overlay then remove it
    }
});

如果您观看视频,您会看到按下前一页的链接会导致页面滚动跳回 0。按下浏览器的后退按钮使其保持所需的行为。

有什么问题?

4

1 回答 1

0

好的,我想我知道出了什么问题。历史会记住前一页的滚动,因此后退按钮会保持滚动。指向上一页的链接会生成一个新的历史状态,因此您不会回到以前的状态,而是滚动为零的新状态。

于 2011-04-02T10:15:27.287 回答