我在这里看到了一些相关问题,但到目前为止我找不到适合我的解决方案。
事情就是这样:我有一个tab
部分,其结构与this相同,而且工作得很好。但是,如果我创建一个URL,比方说,第二个标签,就像这个www.example.com/path/to#tab2
一样,它会将我带到默认选项卡tab1。
在我的研究中,我读到了这可能是一个解决方案:
$(function(){
var hash = window.location.hash;
hash && $('ul.nav a[href="' + hash + '"]').tab('show');
$('.nav-tabs a').click(function (e) {
$(this).tab('show');
var scrollmem = $('body').scrollTop();
window.location.hash = this.hash;
$('html,body').scrollTop(scrollmem);
});
});
之后,如果我转到www.example.com/path/to
并浏览标签,它们就像以前一样工作,但是,如果我直接转到此网址www.example.com/path/to#tab2
,我会在控制台中收到此错误:< / p>
Uncaught TypeError: $(...).tab is not a function
据我所知,这是Jquery加载的一个问题,这对我来说没有意义,因为我的.js
文件已经有了jquery函数并且它们正在工作。
Jquery版本:1.12.4;
Bootstrap版本:3.3.5;
答案 0 :(得分:0)
实际上我自己找到了答案,这就是我所做的:
var hash = document.location.hash;
var prefix = '/';
if (hash) {
$('.nav-tabs a[href="' + hash.replace(prefix, '') + '"]').tab('show');
}
我接近使它工作,只是之前没有使用正确的前缀。