我有一个带有引导程序选项卡的页面,我想从外部页面进行链接。因此,我可以立即访问自己感兴趣的内容。
即使我读了很多问题,也无法真正达到目标。我已经写了这段对我不起作用的代码:
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。您能帮我还是建议类似的答案?我的意思是我读过几乎所有没有成功的书。
谢谢。
最佳答案
您的CSS选择器不正确。您正在尝试搭配苹果和桔子。
如果第一个锚标记的href
属性设置为http://localhost/somehwhere/#general-informations
,并且URL栏以#general-informations
结尾,那么CSS选择器a[href='+hash+']
将尝试直接匹配。不幸的是,字符串http://localhost/somehwhere/#general-informations
不等于字符串#general-informations
。
您想要的是CSS以选择器$=
结尾,请使用以下代码:
$('.nav-tabs a[href$="'+hash+'"]').tab('show');
这将选择所有带有href属性(以
hash
变量的值结尾)的锚标记。