0

从外部链接链接 到选项卡式内容中的锚点 转到锚点。脚本需要作为全局文件添加到所有页面/模板中。到目前为止,我所拥有的示例。

单击<a goto="stuff" href="#test">Go to stuff</a>/ 转到第三个选项卡

jsfiddle

4

1 回答 1

0

问题在于 $(window.location.hash) 的计算结果为 $('#test'),因此它会查找 ID="test" 的元素。您的页面上不存在此类元素。

使用这样的链接:

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 属性。同时使用nameid也是一个好主意:

<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
});
于 2012-05-16T11:10:25.893 回答