AJAX 和后退按钮(无法使 JQUERY 历史记录正常工作)

发布于 2024-10-19 21:17:11 字数 321 浏览 4 评论 0原文

我正忙于制作一个广告网站,在类别页面上,用户可以调整屏幕(参见 http://www.huurhulp.nl/verhuur/vakantie-en-recreatie/),例如下一页将调用 AJAX 请求并加载新广告。我知道后退按钮不适用于 AJAX,例如,如果我单击广告并想要返回到概述(第 3 页),那么我尝试了几个 JQUERY 历史记录示例,但我无法让它们工作。 JQUERY History 是唯一的选择吗?我做错了什么吗?有人有一个很好的例子吗?

I am busy with making a advertisement website, on the categorie pages the screen is adjusable by the user (see http://www.huurhulp.nl/verhuur/vakantie-en-recreatie/), for example the next page wil call a AJAX request and loads the new advertisements. I know that the back button is not working with AJAX, for example if i click on an advertesiment and want to ga back to the overview (page 3) so i tried severall JQUERY History examples but i can't get them working. Is JQUERY History the only option, am i doing something wrong and does anybody got a good example?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

故事与诗 2024-10-26 21:17:11

查看 Ben Alman 的后退按钮和查询 插件。

这使您可以轻松地将“状态”推送到浏览器 URL 中。例如 $.bbq.pushState("page", "2")#page=2 添加到浏览器 URL。

http://www.huurhulp.nl/verhuur/vakantie-en-recreatie/#page=2

然后,您连接一个事件处理程序,该事件处理程序会在哈希更改时触发,并在其中处理您的 ajax 导航。例如,

$(window).bind( "hashchange", function(e) {
    var category = $.bbq.getState("category");
    // do your ajax stuff here....
});

为后退按钮支持剩下的唯一一件事就是在页面首次加载时触发 hashchange 事件。

$(document).ready(function() { 
    $(window).trigger( "hashchange" );
});

Have a look at Ben Alman's Back Button and Query plugin.

This allows you to easily push 'state' into the browsers url. eg $.bbq.pushState("page", "2") adds #page=2 to the browsers url.

http://www.huurhulp.nl/verhuur/vakantie-en-recreatie/#page=2

You then hook up an event handler that fires whenever the hash changes and handle your ajax navigation in there. eg

$(window).bind( "hashchange", function(e) {
    var category = $.bbq.getState("category");
    // do your ajax stuff here....
});

The only other thing left to do for back button support is to trigger the hashchange event whenever the page is first loaded.

$(document).ready(function() { 
    $(window).trigger( "hashchange" );
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文