0

我正在研究 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.ini 中添加持久性容器时没有任何变化。

有没有办法加载已经显示帖子内容的页面,或者在页面加载 hash-bang url 时打开#DrawerContainer?

请记住,我只是在学习 jquery 和 ajax。因此,如果您解释或评论一下您的工作,我将非常感激,我一定会同时学习... :)

4

2 回答 2

3

在 onload 上,您应该检查 window.location.hash 并触发对特定链接/div 的点击。

$(document).ready(function() {
    var hash = window.location.hash;
    if ( hash.length > 0 ) {
        hash = hash.replace('#' , '' , hash );
        $('a[rel="'+hash+'"]').trigger('click');
    }
}); 
于 2012-11-08T15:48:27.387 回答
0

我在想要通过哈希更改触发的网站上使用了以下内容。

首先我绑定一个 hashchange 事件来获取哈希值

 $(window).bind('hashchange', function(o){

            url = window.location.hash.substring(1);

            o.preventDefault();



        if (!url) {
            return;
        }

 }

然后我在需要时触发 hashchange - 在您的情况下,当页面加载时,即文档准备就绪。

jQuery(document).ready(function($) {
   $(window).trigger('hashchange');
});

然后,您可以在加载正确内容的函数中使用哈希值

于 2012-11-08T15:59:37.810 回答