单击Hashchange,来自其他站点时触发单击

时间:2012-09-09 14:58:36

标签: wordpress jquery hashchange

我已经为我的wordpress主题实现了this,当我点击文件夹中的链接时,我正在试图弄清楚如何实现hashchange。我试图使用this tutorial来触发哈希交换。当我注释掉“加载固定链接到.itemContent”时,哈希转换工作正常,但随后该项目立即向下滑动。当它没有被注释掉时,哈希变换不会触发。

另外,如果有人将http://www.pathtomydomain.com/#/item-name-1复制到地址栏(或书签),如何根据网址打开文件夹?与.trigger(点击)有什么关系?

HTML

<div id="container">    
<div class="item">
<a href="http://pathtomydomain.com/item-name-1">
<img src="an-image-1.jpg" />
</a>
</div>

<div class="item">
<a href="http://pathtomydomain.com/item-name-2">
<img src="an-image-2.jpg" />
</a>
</div>

<div class="item">
<a href="http://pathtomydomain.com/item-name-3">
<img src="an-image-3.jpg" />
</a>
</div>
</div>
<div class="itemContent"></div>

JQUERY

$.ajaxSetup({cache:false});

$('.item').click(function(){
        if($('.itemContent').is(":visible")){
            $('.itemContent').slideUp("fast", function(){  
        });

    } else if ($('.itemContent').is(":hidden")) {
        $('.itemContent').empty();
        $('.itemContent').html('<img class="loading" src="ajax-loader.gif"/>');
        $('.itemContent').slideDown("fast", function(){
            var $dock = $('#navigation'),
                dockHeight = $dock.height();
            $("html, body").animate({
                            scrollTop: $('.itemContent').offset().top - ( $(window).height() - dockHeight - $(this).outerHeight(true) ) / 2 

                            });

        });

    /*
    Load permalink to .itemContent . 
    */
    var post_link = $(this).children("a").attr("href");
        $(".itemContent").load(post_link);
        return false;

      }

});

var $mainContent = $(".itemContent"),
    siteUrl = "http://" + top.location.host.toString(),
    url = ''; 
$(document).delegate("a[href^='"+siteUrl+"']:not([href*=/wp-admin/]):not([href*=/wp-login.php]):not([href$=/feed/])", "click", function() {
    location.hash = this.pathname;
    return false;
}); 

$(window).bind('hashchange', function(){
    url = window.location.hash.substring(1); 
});
$(window).trigger('hashchange');

0 个答案:

没有答案