我有一个简单的选项卡式界面,可以在隐藏的 div 之间切换,并在单击时在相应的选项卡上设置活动状态。
当有人访问选项卡的 url 时,它只显示该选项卡的内容,这很好。
如果您直接访问该网址,我还需要它设置该选项卡的活动状态。
我有网址,例如 abc.com/index.html#gallery、abc.com/index.html#recipes 等。
因此,如果您访问 abc.com/index.html#recipes - 食谱选项卡会突出显示。
我的代码如下,提前感谢您的任何建议!
$(function () {
var app = {
vars: {
gallery: $('#gallery'),
tabContent: $('.tabs .tabContent'),
nav: $('.tabs nav a')
},
events: function () {
//tabs
app.vars.nav.on('click', function (e) {
var thisHash = $(this).attr('href');
app.setHash(thisHash);
e.preventDefault();
$('nav a').removeClass('active');
$(this).addClass('active');
});
//hashchange
$(window).on('hashchange', function() {
app.checkHash();
});
},
checkHash: function () {
var hash = app.getHash();
if (hash == '') {
app.vars.tabContent.hide();
app.vars.gallery.show();
} else {
app.goTo(hash);
}
},
getHash: function () {
return window.location.hash;
},
setHash: function (id) {
window.location.hash = id;
},
goTo: function (id) {
app.vars.tabContent.hide();
$(id).fadeIn();
}
}
app.events();
app.checkHash();
});