jQuery自动完成和后退按钮行为?

时间:2011-02-23 21:16:33

标签: javascript jquery ajax browser-history

我正在使用真棒jQuery autocomplete plugin。但是,在理解浏览器行为和Ajax方面,我有点新手,所以我有一个问题。

这是一系列事件:

  1. 用户在文本框中输入'fish'
  2. 用户从自动填充选项列表中选择书名 - 鱼类养殖,鱼类煎炸等
  3. HTML加载页面(作为ajax) - “点击此处查看鱼类养殖”
  4. 用户点击链接并加载Fish Farming页面
  5. 用户决定Fish Farming不适合他们,点击“返回”按钮 - 然后返回空白页面!
  6. 如何更改此设置,以便当用户返回主页时,他们会看到Fish Farming html - 他们刚刚看到的页面?

    这是我的自动填充代码:

        // Autocomplete listener.
        $("#q").catcomplete({
                source: "/book_results",
                select: function(event,ui) {
                    $('#book_results').html(load_img);
                    if (ui.item.category=="Books") { 
                        $.bbq.removeState();
                        var paramsObj = { 'b' : ui.item.id };
                        $.bbq.pushState( paramsObj );
                        get_books(null, null, null, ui.item.id);
                    } else {
                        $.bbq.removeState();
                        var paramsObj = { 's' : ui.item.id };
                        $.bbq.pushState( paramsObj );
                        get_books(null, ui.item.id, null);
                    }
                }
        });
    

    正如您所看到的,当用户从自动填充中选择某些内容时,我已经在使用BBQ plugin来更新网址片段,这只是因为它似乎是一个好主意。

    所以我在哈希中设置了book_id - 但是如何在用户单击“返回”时确保加载相关的HTML?

    谢谢!

1 个答案:

答案 0 :(得分:0)

当用户做出选择时,将锚点附加到URI或会话状态。

为后退和前进按钮创建新事件并相应地遍历列表。