如何解决jQuery地址-深度链接和状态
|| 我对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()
是因为在某些时候会动态插入更多条目标题。
解决方法
首次加载页面时,此代码中没有读取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或用户首次到达时,内容都会重新加载。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。