【发布时间】:2012-11-08 15:45:06
【问题描述】:
我正在开发 Wordpress 单页作品集上的 ajax 加载功能。
原理是当你点击图库中的缩略图时,它会打开一个容器(#DrawerContainer)并将本文的ajax内容提取到其中。在很多帮助下,我已经能够在单击缩略图时打开抽屉并加载帖子内容。
如果你想看到它工作,这里有一个小提琴(ajax 不会加载,但它在本地工作)。 http://jsfiddle.net/RF6df/24/
我现在正在处理的部分:我需要我的网站是可抓取的,并且网址是可共享的。如果我将http://mywebsite.com/#!project5 给某人,我需要在他加载页面时打开 project5 内容。
我认为 hash-bang (#!) url 是完成这项工作的方法。使用下面的代码(在 jsfiddle 上注释),我可以更新 url 并添加点击缩略图的哈希。
var pathname = $(this).find('a')[0].href.split('/'),
l = pathname.length;
pathname = pathname[l-1] || pathname[l-2];
window.location.hash = "#!" + pathname;
但是当我加载页面时,不会记住 ajax 状态。我认为这是因为我的 ajax 容器仅在单击事件时加载,但是当我在 php 中添加持久容器时没有任何变化。
有没有办法加载已经显示帖子内容的页面,或者在页面加载 hash-bang url 时打开#DrawerContainer?
请记住,我只是在学习 jquery 和 ajax。所以如果你解释或评论你所做的事情,我真的很感激,我一定会同时学习...... :)
【问题讨论】:
-
Ene 的方法看起来不错,我已经评论过了。如果您需要进一步的帮助,更新小提琴以更好地反映 html 结构将有很大帮助 - 例如列表项中没有链接,很高兴看到它们的href是什么样的(例如
/foo/或/foo或http://example.com/foo/bar) -
我刚刚更新了小提琴(见第一个缩略图),所以你有我的确切结构。
<?php the_permalink(); ?>正在返回此http://example.com/foo/并使用哈希看起来像这样http://example.com/#!foo
标签: php javascript jquery ajax