我有这个选项卡系统:
$(document).ready(function(){
$('#tabs div').hide();
$('#tabs div:first').show();
$('#tabs ul li:first').addClass('active');
$('#tabs ul li a').click(function(){
if($(this).parent().hasClass('active')) {
/** active **/
} else {
$('#tabs ul li').removeClass('active');
$(this).parent().addClass('active');
var currentTab = $(this).attr('href');
$('#tabs div').hide();
$(currentTab).show('slide', {}, 500);
}
return false;
});
});
<div id="tabs">
<ul>
<li><a href="#tab-1">1</a></li>
<li><a href="#tab-2">2</a></li>
<li><a href="#tab-3">3</a></li>
<li><a href="#tab-4">4</a></li>
<li><a href="#tab-5">5</a></li>
</ul>
<div id="tab-1">
Content tab1
</div>
<div tab2... etc
如果我在 URL 末尾添加 #tab-3,它应该会自动显示选项卡 3 并将其设置为事件状态,而无需我单击它。
这可以通过简单的方式实现吗?
最佳答案
进一步查看代码后进行编辑 -
如果每次 DOM 准备好时都在这两行中编写代码,您总是会看到第一个选项卡。
$('#tabs div:first').show();
$('#tabs ul li:first').addClass('active');
在决定是否应该显示第一个选项卡之前,您必须先检查“#tab”的网址。
$(function(){
...
var hash = window.location.hash;
if(hash){
$('a[href="' + hash +'"]').parent('li').addClass('active');
var elementID = hash.replace('#', '');
$(elementID).show();
} else {
$('#tabs div:first').show();
$('#tabs ul li:first').addClass('active');
}
...
}
关于jQuery 从 URL 设置事件选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11889365/