2012-05-16 76 views

回答

0

的問題是,$(window.location.hash)的計算結果爲$( '#試驗'),所以它看起來爲與ID = 「測試」 的元素。這個元素不存在於你的頁面上。

使用像這樣的鏈接:

http://www.canberra.edu.au/media/test/bookmark.html/#test

通常會表明您想要去到標有錨名稱=「測試」的內容。

在您的例子我至少可以看到兩個錨具有相同名稱的屬性:

<a name="test"></a> 

這是錯誤的 - 錨名稱必須是唯一的:

http://www.w3.org/TR/html401/struct/links.html#idx-anchor-4

所以一旦你解決這有一個唯一的錨名稱,然後你可以使用href而不是你的goto屬性。 這也是一個好主意,同時使用ID

<a id="test" name="test"></a> 

這將使$(window.location.hash)正常工作。

所以現在這應該激活正確的標籤:

var $targetAnchor = $(window.location.hash); 
tabId = $targetAnchor.closest('.tab-content').attr('id'); 
$tabs.find('a[href=#' + tabId + ']').click(); 

,這應該滾動工作:

$('html, body').animate({ 
    scrollTop: $targetAnchor.offset().top 
}); 
+0

謝謝Kfej--我一直在看這個太久,錯過了第二個主播。好,那麼好,我怎麼能繼續滾動到錨點? – NickP

+0

不知道如何把這一切放在一起 - 你可以在這裏添加它請!我會很感激:-) http://jsfiddle.net/dhirajbodicherla/TGMDd/2/ – NickP

+0

不,現在離開你的錨點單擊處理程序,因爲它 - 它工作得很好,對吧?將我的代碼添加到$(document).ready的末尾,以處理傳入的外部請求。當我有一分鐘時,我可以編輯你的jsfiddle。 – jfrej