jQuery地址插件,使用AJAX时路径名改变

Posted

技术标签:

【中文标题】jQuery地址插件,使用AJAX时路径名改变【英文标题】:jQuery address plugin, pathname change when using AJAX 【发布时间】:2012-03-05 09:22:17 【问题描述】:

我在http://themes.visualise.ca/visualise 有一个 Wordpress 博客,当用户点击缩略图时,帖子会加载 AJAX(使用 jQuery 地址插件)。我希望 URL 同时更改为,即对于第二个缩略图,URL 应更改为 http://themes.visualise.ca/visualise/portfolio/samuel,但使用以下代码将更改为 http://themes.visualise.ca/visualise/visualise/portfolio/samuel。

1) 所以我的问题是有没有办法让 jQuery 地址用目标 url 的路径名替换当前路径名,而不是简单地在末尾添加它?我希望该解决方案也可以与 http://themes.visualise.ca/ 到 http://themes.visualise.ca/visualise/portfolio/samuel 一起使用,因为该博客可能不会像现在这样托管在一个文件夹中。

2) 或者也许有另一种方法可以实现这一目标?

这里是 jQuery 代码:

$('.ajaxed,li.menu-item-object-page a').live('click', function(event) 
    var link = $(this).attr('href');
    var rewritepath = $(this)[0].pathname;
    $("html,body").animate(scrollTop: 0, 300);
    $('#content,.plus').stop().fadeOut('slow', function()
        $('#board-wrapper').slideDown('slow');
        $('#board').fadeOut('slow', function()
            $('#board').stop().load(link, function()
                $('#board').delay(1000).fadeIn('slow', function()
                    var board_h2 = $('#board').height();
                    $('#board-wrapper').css('height', board_h2 + 'px');
                );
            );
        );
    );
    $.address.crawlable(true).path(rewritepath);
    return false;
);

非常感谢您的时间和帮助。

【问题讨论】:

【参考方案1】:

我所做的是我从链接 url 中删除了根站点 url 并且它可以工作。

$('.ajaxed,li.menu-item-object-page a').live('click', function(event) 
    var link = $(this).attr('href');
    var toRemove = MySettings.url;
    var url_pathname = MySettings.url[0].pathname;
    var rewritepath = link.replace(toRemove,'');
    ...
);

【讨论】:

以上是关于jQuery地址插件,使用AJAX时路径名改变的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 单页无刷新插件

AngularJS $location 不改变路径

轻量级、易于使用的jQuery插件用于动画化SVG路径

Thinkphp Ajax传地址

轻量级HTML5插件使用jQuery绘制SVG图形轮廓线路径动画教程

AJAX 和相对路径范围