0

在我的网站中,我基于以下内容构建页面导航hashchange

var hashHome;
$(window).bind( 'hashchange', function(e) {
    var homeClass = "home";
    var url = $.param.fragment();
    if($('#page-content').hasClass(homeClass)){
        hashHome = $('#page-content').html();
    }

    if(url ==''){
        //homepage with nothing(no hash)
        if(!$('#page-content').hasClass(homeClass)){
            //alert("load frim cache ->#"+url);
            $('#page-content').addClass(homeClass);

            $('#page-content').html(hashHome);
        }
    }else{
        //go to some page 
        if($('#page-content').hasClass(homeClass))
            $('#page-content').removeClass(homeClass);
        initAction(url);
    }
})
$(window).trigger( 'hashchange' );

当站点加载其主页时,主页将存储在hashHome. 如果用户离开,initAction(id)则将整个$('#page-content')' 内容替换为其他页面的内容。当用户导航回主页时,它会将存储的主页恢复为$('#page-content').

我的问题是所有 jQuery 都停止在主页上工作。

我已经阅读过,live()但似乎它需要一个类似的事件click()才能工作。我该如何解决?

4

1 回答 1

0

我发现在更改围绕它的 div 的内容之前,我需要存储整个页面

var content$('#page-content').html();

然后做内容改变

这样,当我重新初始化所有 jQuery 插件时,它们将丢失所有旧引用并使用新content变量,而不是双重初始化

最后,我的原始问题代码也不起作用,因为脚本标签看起来像这样:<script type="text/javascript">...</script>,IE 由于某些原因无法识别,所以我必须将其更改为<script></script>以使其跨浏览器兼容

于 2012-07-20T13:19:13.303 回答