【发布时间】:2012-07-16 21:21:41
【问题描述】:
在我的网站中,我基于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() 这样的事件才能工作。我该如何解决这个问题?
【问题讨论】:
-
您是否尝试过使用 Firebug 之类的工具来查看任何错误?您也可以将代码包装在 try { }catch(e){alert(e); }
-
没有发现错误,控制台没有打印任何东西。
-
是否需要在$(document).ready({});
标签: javascript jquery html hashchange