【发布时间】:2015-10-15 17:40:44
【问题描述】:
我有几个不同高度的标签。点击tab链接时如何防止页面跳转到容器顶部?
JSFiddle
http://jsfiddle.net/q1tdsar1/1/ 重现问题的步骤:单击选项卡 3,向下滚动,就像阅读选项卡 3 的内容一样,然后单击选项卡 1。Boom > Page Jump!
这是我的 JS:
$('#tabs div.tab').hide();
$('#tabs div.tab:first').show();
$('#tabs ul li:first').addClass('active');
$('#tabs ul li a').click(function(){
$('#tabs ul li').removeClass('active');
$(this).parent().addClass('active');
var currentTab = $(this).attr('href');
$('#tabs div.tab').hide();
$(currentTab).show();
return false;
});
这是 HTML
<div id="tabs">
<ul class="nav">
<li><a href="#tab-1">Tab 1</a></li>
<li><a href="#tab-2">Tab 2</a></li>
<li><a href="#tab-3">Tab 3</a></li>
</ul>
<div id="tab-1" class="tab">Some content</div>
<div id="tab-2" class="tab">Some longer content</div>
<div id="tab-3" class="tab">Some even longer content</div>
</div>
这是 CSS:
#tabs ul.nav {
float: left;
width: 500px;
}
#tabs li {
margin-left: 8px;
list-style: none;
}
* html #tabs li {
display: inline;
}
#tabs li,
#tabs li a {
float: left;
}
#tabs ul li.active {
border-top:2px #FFFF66 solid;
background: #FFFFCC;
}
#tabs ul li.active a {
color: #333333;
}
#tabs div.tab {
background: #FFFFCC;
clear: both;
padding: 15px;
}
#tabs ul li a {
text-decoration: none;
padding: 8px;
color: #000;
font-weight: bold;
}
【问题讨论】:
-
添加
event.preventDefault(); -
能否请您提供带有链接的标签页的HTML?
-
@Ales 查看更新的问题
-
你为什么不试试jquery ui tabs??
-
@IndrasinhBihola 它在 Kb 中是巨大的,这就是为什么?!如果可以的话,我想避免加载其他大型库。
标签: javascript jquery css