Jquery .hash不能在引导标签

时间:2016-07-28 20:03:16

标签: javascript jquery twitter-bootstrap hash tabs

我有一个带有引导标签的页面,我想从外部页面链接。所以我可以立即访问我感兴趣的内容。

即使我在问题中阅读了很多问题,但我还是无法实现目标。我写了这段不适合我的代码:

var hash = document.location.hash;
if (hash) {
    $('.nav-tabs a[href='+hash+']').tab('show');
} 
// Change hash for page-reload
$('.nav-tabs a').on('shown.bs.tab', function (e) {
    window.location.hash = e.target.hash;
});

我的HTML是以下

<ul id="profile-tabs" class="nav-tabs">
    <li class="active"><a href="<?php echo get_permalink(); ?>#general-informations" data-toggle="tab"><?php _e("General Info",'Mytheme');?></a></li>
    <li class=""><a href="<?php echo get_permalink(); ?>#other" data-toggle="tab"><?php _e("Other",'Mytheme');?></a></li>
</ul>

我想我可能会以错误的方式使用.hash。你能帮我或建议类似的答案吗?我的意思是我几乎读过所有那些没有成功的人。 感谢。

1 个答案:

答案 0 :(得分:1)

您的CSS选择器不正确。你正试图匹配苹果和橘子。

如果您的第一个锚标记href属性设置为http://localhost/somehwhere/#general-informations且您的网址栏以#general-informations结尾,那么您的CSS选择器a[href='+hash+']将是试图直接匹配。不幸的是,字符串http://localhost/somehwhere/#general-informations不等于字符串#general-informations

你想要的是CSS以选择器结束:$=,使用它:

$('.nav-tabs a[href$="'+hash+'"]').tab('show');

这将选择所有锚点标签,其href属性以hash变量的值结束。