基于jQuery锚点的导航

时间:2011-06-17 14:10:01

标签: jquery ajax url anchor

我正在寻找一种在页面之间导航的方法,并在使用jQuery更改锚点时响应事件。为了说明我的问题,让我演示一个例子:

  1. 用户输入一个已加载jQuery的页面,没有jQuery UI或任何其他插件。
  2. 在页面加载时,用户会从http://thesite.com/重定向到http://thesite.com/#/,而不会刷新任何页面。
  3. 点击了这样一个链接:<a href="#/author/bio">My Bio</a>
  4. jQuery使用$.ajax()方法加载请求的页面,而不刷新页面。
  5. 用户点击浏览器后退按钮,转到http://thesite.com/#/,无需刷新页面。
  6. 在加载页面内容方面我很好。但是,这是我不知道的:

    1. 如果页面加载时未提供,我如何重定向到http://thesite.com/#/
    2. 当点击带有分频器(#)的链接时,如何监听以获取加载页面而不刷新的请求?
    3. 最重要的是,我如何监听浏览器后退/转发请求,知道要加载哪个页面?
    4. 对于问题的崩溃列表感到抱歉。如果我的方案不够明确,那么这里有一个很棒的网站:http://grooveshark.com/

      感谢您的时间!我将慷慨地给予全面的答复/评论。

2 个答案:

答案 0 :(得分:3)

那么你必须在a标签上添加一个onclick。

然后你所要做的就是:

$('a').click(function(){

    window.location.hash = this.href;
    //some load of that url to the page
    return false;

});

要收听哈希更改,您需要一个像this one

这样的插件

答案 1 :(得分:-1)

首先加载jquery。

准备好更改所有网址,例如

$('a').forEach(function(obj){
   obj.href=obj.href+"#";
});
// on click load 
$('a').click(function(a){
   ajaxLoad(a);

//push to window.history

});