2014-08-28 51 views
0

仍在学习基本的PHP & jQuery的,但卡位与一个想法:我有两页,第二页上我有显示/隐藏的DIV,这里是jsfiddle demo显示/隐藏内容从一个页面重定向到另一个

$('.navLink').on('click', function(e){ 
e.preventDefault(); 
var targetDiv = $($(this).attr('href')); 
if(!targetDiv.is(':visible')){ 
    $('.page').slideUp().delay(300); 
    targetDiv.slideDown(); 
}else{ 
    $('.page').slideUp().delay(500); 
} }); 

我想要从第一页(page1.html)到第二页(page2.html)的链接,所以如page2.html#div1这样会打开选定的#div。我试着锻炼与jsfiddle

window.addEventListener("hashchange", function(){  
var targetDiv = $(location.hash);  
if(!targetDiv.is(':visible')){$('.page').slideUp();targetDiv.slideDown();} 
else{$('.page').slideUp();} }, false); 

,但它不能正常工作,当你givitn链接到某一个和一些镀铬的版本不工作...

是否有更好的想法还是?

在此先感谢!

+0

对Chrome的版本你的jsfiddle做工精细37.0.2062.94米 – melancia 2014-08-28 13:01:42

+0

第一个正常工作两者,是没有问题的。至于第二个。不是在我的Chrome浏览器中工作+某些时候,当你给某些链接,如domain.com/page2.html#div1不是第一次打开隐藏的DIV时。一旦你尝试第二个...它的工作... – JU1CY 2014-08-28 13:07:42

+0

他们在Firefox 34中也能正常工作;你可以指定你遇到的(不同的?)浏览器和浏览器版本吗? “不正常工作”意味着什么更详细? – retrovertigo 2014-08-28 13:08:41

回答

1

在你可以调用的地方定义hashchange处理程序,然后在页面加载时location.hash不为空的情况下调用它。 事情是这样的:

window.onhashchange=function(){  
    var targetDiv = $(location.hash);  
    if(!targetDiv.is(':visible')){$('.page').slideUp();targetDiv.slideDown();} 
    else{$('.page').slideUp();} 
}; 
if(window.hash!="") window.onhashchange(); 

http://jsfiddle.net/Lgyagand/2

+0

看起来像我需要的!还有一个问题是可能的,如果你已经在页面上并且一些DIV是开放的,你如何关闭它?像在第一个演示(http://jsfiddle.net/kLjrxost/1/)? – JU1CY 2014-08-28 13:40:24

+0

尝试跟踪最后一个散列并注册散列处理程序,以便也是点击处理程序:http://jsfiddle.net/Lgyagand/3/ – vpzomtrrfrt 2014-08-28 13:47:18

+0

干杯!这真是我需要的! – JU1CY 2014-08-28 13:52:15

相关问题