jQuery地址插件 - 替换内容时不起作用

时间:2010-07-07 03:04:41

标签: jquery ajax jquery-address

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

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

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

有没有办法让这项工作?

修改

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

示例ajaxLoad函数:

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

1 个答案:

答案 0 :(得分: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);
});

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