2012-05-16 77 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