2014-08-28 80 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

相關問題