帮助jQuery地址插件

时间:2010-09-12 22:09:40

标签: javascript jquery ajax

我有一个带有ajax加载内容的网站。现在我想实现jQuery address plugin以获得更好的用户体验和SEO抓取。

使用此行$.address.value($(this).attr('href'));,地址更改工作正常,但我如何进行历史记录支持,抓取等操作?

我必须做$.address.change(function(event){...});的事情,但是什么?我试图将$("#content").load(toLoad,'',showNewContent)放入其中,其他一千件事情,遗憾的是没有结果。

文档很差:http://www.asual.com/jquery/address/docs/

这是我的代码:

$('a:not([href^=http])').click(function() {

    var toLoad = $(this).attr('href') + " #ajaxedContent";

    $("#content").fadeOut(600,loadContent);

    $("#load").remove();
    $('#logo').append('<div id="load"></div>');
    $("#load").fadeIn(100);

    $.address.value($(this).attr('href'));

    function loadContent() {
        $("#content").load(toLoad,'',showNewContent)
    }

    function showNewContent() {
        // Capture the final dimensions of the content element and animate, finally fade content in
        $("#limit").animate({height: $("#content").height()},600,'easeInOutQuad',function() {
            $("#content").fadeIn(600,hideLoader);
            callback();
        });
    }

    function hideLoader() {
        $("#load").fadeOut(300);
    }

    return false;
});

基本实现如下:

$.address.change(function(event) {
    // do something depending on the event.value property, e.g.
    // $('#content').load(event.value + '.xml');
});

$('a').click(function() {
    $.address.value($(this).attr('href'));
});

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:3)

这种方式有效:

$.address.init(function(event) {

    $('a:not([href^=http])').address();

}).change(function(event) {

    var toLoad = event.path + " #ajaxedContent";

    $("#content").fadeOut(600,loadContent);

    $("#load").remove();
    $('#logo').append('<div id="load"></div>');
    $("#load").fadeIn(100);

    function loadContent() {
        $("#content").load(toLoad,'',showNewContent)
    }

    function showNewContent() {
        // Capture the final dimensions of the content element and animate, finally fade content in
        $("#limit").animate({height: $("#content").height()},600,'easeInOutQuad',function() {
            $("#content").fadeIn(600,hideLoader);
            callback();
        });
    }

    function hideLoader() {
        $("#load").fadeOut(300);
    }

    return false;
});