我正在使用以下代码作为我的引导选项卡,以便在网址中包含选项卡的#name,因为我想在完成一些帖子操作后重定向到特定选项卡,这样可以正常工作。
然而,自从我开始使用代码以来,所有其他链接都停止了做任何事情,它没有打开页面或显示错误,什么都没有。
这是我的代码:
$(function() {
var gotoHashTab = function (customHash) {
var hash = customHash || location.hash;
var hashPieces = hash.split('?'),
activeTab = $('[href=' + hashPieces[0] + ']');
activeTab && activeTab.tab('show');
}
// onready go to the tab requested in the page hash
gotoHashTab();
// when the nav item is selected update the page hash
$('.nav a').on('shown.bs.tab', function (e) {
window.location.hash = e.target.hash
//location.hash = $(e.target).attr('href').substr(1);
scrollTo(0,0);
})
// when a link within a tab is clicked, go to the tab requested
$('.tab-pane a').click(function (event) {
if (event.target.hash) {
e.preventDefault();
gotoHashTab(event.target.hash);
}
})
$('.tab-pane a').on('click', function(e){
e.preventDefault()
})
});
我注意到其他一些问题,e.preventDefault()
可能会导致这种情况,但是当我发表评论时,没有任何事情发生。
如何重写代码以保持功能但让这些普通链接再次运行?
答案 0 :(得分:0)
正在查看与此相关的所有链接:
activeTab = $('[href=' + hashPieces[0] + ']');
更改为:
activeTab = $('.tab-pane [href=' + hashPieces[0] + ']');
并且还尝试使用.nav更具体,因为.nav是所有导航的默认设置。所以这个:
$('.nav a').on('shown.bs.tab', function (e) {
应改为:
$('.tab-pane a').on('shown.bs.tab', function (e) {