我对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()
的原因是因为在某些时候会动态插入更多的条目标题。
答案 0 :(得分: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
事件。这样,无论何时更新网址或用户第一次到达时,都会重新加载内容。