-2

我对 AJAX 相当陌生,目前正在学习如何在演示站点上实现 jQuery Address,以便我可以将其移植到我正在处理的个人项目中。

虽然我能够通过超链接加载所需的内容以及修改 URL 哈希,但如果我直接在浏览器栏中输入 URL 哈希,我将无法导航到特定状态。

当前代码如下所示:

$("h2.entry-title a").live('click', function(event) {
    event.preventDefault();
    $("#content").fadeOut("slow").load($(this).attr("href")+" #content > *", function() {
        $.address.value("?page=entry");
    }).fadeIn("slow");
});

我尝试寻找有关使用 jQuery Address 实现深度链接的教程和演示,但到目前为止它没有产生任何成果。

感谢你的帮助 :)

p / s:我使用.live()而不是的原因.bind()是因为在某些时候会动态插入更多条目标题。

4

1 回答 1

0

当您第一次加载页面时,此代码中没有任何内容会读取 url。如果您在地址栏中输入“http://test.com/test.html?page=entry”,那么您需要在页面加载、手动更改哈希值以及点击事件时加载内容。

http://abishaigray.com/jquery.address.php

$(function() {
    var content = $("#content");
    var loadUrl = function(url) {
        content.fadeOut("slow", function() {
            content.load(url + " #content > *", function() {
                    content.fadeIn("slow");
                });
        });
    };
    $("a.loadUrl").live('click', function(event) {
        event.preventDefault();
        $.address.parameter("page", $(this).attr("href"));
    });
    $.address.change(function(vars) {
        var page = $.address.parameter("page");
        if (page) { loadUrl(page); }
    });
});

我利用了这次$.address.change活动。这样,每当您更新 url 或当用户第一次到达时,内容都会被重新加载。

于 2011-06-22T15:27:27.973 回答