2012-01-15 75 views
1

我發生這種奇怪的事情: 當點擊跨越導航內容必須切換。 一切工作除了當你點擊一個跨度的頁面跳轉到它(跨度將正確的時間)。我發現有關頁面跳轉的內容是關於錨標籤並返回false的;但沒有跨度。 在我看來,切換內容不能怪,因爲從來沒有隻有一個div顯示:none(如果是這樣的話,頁面應跳轉到頂部而不是跳轉到跨度,對不對?) 防止任何操作似乎不適用於跨度。頁面跳轉span.click()

$("#subnavi span").click(function(){ 
    $("#inner-content div:visible").animate({height: "toggle", opacity: "toggle"}, "slow"); 
    $("#content-"+this.id).animate({height: "toggle", opacity: "toggle"}, "slow"); 
    $("#subnavi span").attr("class", ""); 
    $(this).attr("class", "active"); 
}); 

如果解釋是混亂的,去這裏:http://gaming-siblings.com/v2.0/#news和點擊左側導航統計。該頁面將跳轉至您剛剛單擊的跨度,並由於div的高度向後滾動一點。爲什麼會跳到跨度?

這可能不奇怪,但合理。我只是不明白:-)

我已經嘗試了2天,現在休息一下,因爲這主要是幫助,但不是這次。

任何想法/解決方案?如上所述返回false;或preventDefault()在我嘗試時不起作用(因爲它的跨度我猜)。

document.location.hash = "#" + this.id; 

這是—要添加的哈希頁面的網址,以便頁面會自動滾動到「跳」的原因:

回答

0

我在你click()功能看準了這一點額外的行該錨點(在這種情況下,它將滾動到已添加id的單擊元素)。

沒有真正的解決方法,我知道這不會完全重新加載頁面。你最好的選擇是隻使用單獨的頁面或根本不使用哈希。

+0

呵呵,我想我在注意到跳轉後添加了哈希變化。從來沒有想過改變散列實際上像散列錨一樣工作。感謝您指出了這一點。這是非常有道理的。我通過使用不存在的散列ID來創建解決方法,因此無法跳轉。我想這有點骯髒,但它的工作原理。 – user1021052 2012-01-15 11:37:10