0

我一直在使用 jQuery 地址插件来启用后退按钮支持,除了链接在 AJAX 内容区域中时,它一直在工作。例如

<div id="content">
  <a href="example.html" rel="address:example.html" onclick="ajaxLoad(this);">link</a>
</div>

其中 ajaxLoad 替换contentexample.html. 当我尝试这样做时,地址栏不会改变,并且后退按钮只是转到内容区域外链接的最后一个实例。

有没有办法使这项工作?

编辑:

插件:http ://www.asual.com/jquery/address/

ajaxLoad 函数示例:

function ajaxLoad(obj)
{
    $.get(obj, function(data)
    {   
        $("#main").html(data);
    }); 
    return false;
}
4

1 回答 1

0

我使用上下文相关的 window.location 解决了这个问题。

修改ajaxLoad:

function ajaxLoad(obj, inline)
{
    if(!inline)
        window.location='#/'+obj.rel.substring(8);
    else
    {
        $.get(obj, function(data)
        {   
            $("#main").html(data);
        });
    }
    return false;
}

然后是初始页面加载的处理程序,以及使用后退/前进按钮时:

$.address.externalChange(function(event)
{
    var url = event.value.substring(1); //strips the leading slash
    if(url == "")
        url = 'index.php';
    loadPage(url, true);
});

我不知道这是否是最好的方法,但它有效。

于 2010-07-09T02:48:38.693 回答