2011-05-23 83 views
4

我們使用jscrollpane在單擊哈希錨時點擊某些div(#)。在Chrome中點擊後退按鈕時,地址欄中的網址會更改,但瀏覽器不會導航回div。在Firefox中,它會回到以前的div。後退按鈕不適用於鍍鉻

http://www.sandbox.brightboxstudios.com/swings/test4.html

我已經嘗試了各種東西,包括插件,不同的jQuery庫版本。

此外,我試圖使活動菜單項更改類爲活動時,在網址錨無法正常工作,最有可能是因爲我缺乏JavaScript知識。這也很好解決!

+2

對實際問題的描述會很好。 – deceze 2011-05-23 05:45:41

+0

這裏描述的技術細節在使用中代替描述Reuben的Javascript熟練程度仍然很不錯。 – deceze 2011-05-23 06:02:21

+1

@deceze:我將它添加到問題中,隨時添加您認爲合適的任何其他細節。 – 2011-05-23 06:03:36

回答

0

我發現有一個問題幾乎肯定會影響到事物。

在JavaScript

某處,哈希錨被前面添加一個斜槓,使得所顯示的網址是這樣的:

http://www.sandbox.brightboxstudios.com/swings/test4.html#/section3

注意斜槓#後哈希,使其成爲技術上無效的URL(沒有標識或名稱,其值爲#/section3)。當我將鏈接懸停時,狀態欄中沒有出現這種情況,只出現在結果網址中,這導致我相信它與您正在使用的address插件(儘管我對此沒有親身經歷)有關。

後退按鈕僅適用於在Firefox中工作時,前一個URL是沒有散列(即有效url)的URL。我很難用所有加載的插件來調試你的頁面,但看看你是否可以做一些事情來使這些URL有效並擺脫那些正斜槓。

此外,即使它只是一個演示,你應該確保你沒有複製id s。您有#header#middle多次出現。最好在調試時(或者總是,實際上)刪除所有的疑問,並使用有效的標記。

希望這能讓你更接近解決你的問題。

+0

是的..我可以修復的ID,但我不知道如何解決哈希問題.. – Reuben 2011-05-24 19:46:39

+0

看起來你修復了很多,我現在可以在Chrome中前後移動,但有一個例外:回到沒有哈希的原始網址。所以,這固定了很多。不管哈希值是否發生了變化,您都可以嘗試爲這些鏈接觸發哈希變化事件onclick。 (剛注意到幻燈片效果不再起作用,但...) – 2011-05-24 21:00:45

+0

我打算從主域添加一個重定向來添加哈希標籤,甚至讓它在中間開始..我只需要滑回去。 – Reuben 2011-05-25 02:00:09

1

我想這個代碼修復了代碼:

$('ul.nav a') 
.unbind("click") // to remove your binding in my console 
.bind('click',function(event){ // rebind event handler 
    var $anchor = $(this); 
    $('html, body').stop().animate({ 
     scrollLeft: $($anchor.attr('href')).offset().left 
    }, 1500,'easeInOutExpo'); 
    event.preventDefault(); 

    // this is a trick: 
    location.href = $anchor.attr('href'); 
    return false; 
}); 

和導航開始工作。親自嘗試一下。

+0

所以我只是用這個替換我的代碼,或者把它放在後面?我嘗試了兩種......似乎現在在滑動之前試探,並且當後退按鈕被擊中時仍然不工作。爲您的幫助非常感謝! – Reuben 2011-05-23 20:43:56

+0

沒關係 - 替換或放在之後;)更好地放置在HTML中的所有JS之後。 PS:我有Chrome 11.0 – Genius 2011-05-24 10:24:24

+0

沒問題,我已經做好了,並且讓它看到了..我也有11個,現在它不會滑動,後面的按鈕也不會起作用。 – Reuben 2011-05-24 15:24:51