我已经阅读了其他帖子,但是当单击一个标签时,我仍然无法获得页面跳转到顶部。继承人HTML
<ul class="tabs-nav">
<li class="active"><a href="#tab1"><i class="icon-list-ul"></i> Tab 1</a></li>
<li><a href="#tab2"><i class="icon-map-marker"></i> Tab 2</a></li>
</ul>
<!-- Tabs Content -->
<div class="tabs-container">
<div class="tab-content" id="tab1">Stuff</div>
<div class="tab-content" id="tab2">Stuff</div>
</div>
这是js ......
(function() {
var $tabsNav = $('.tabs-nav'),
$tabsNavLis = $tabsNav.children('li'),
$tabContent = $('.tab-content');
$tabsNav.each(function() {
var $this = $(this);
$this.next().children('.tab-content').stop(true,true).hide()
.first().show();
$this.children('li').first().addClass('active').stop(true,true).show();
});
$tabsNavLis.on('click', function(e) {
var $this = $(this);
$this.siblings().removeClass('active').end()
.addClass('active');
$this.parent().next().children('.tab-content').stop(true,true).hide()
.siblings( $this.find('a').attr('href') ).fadeIn();
e.preventDefault();
});
})();
现在我尝试添加
onclick="return false;"
到html中的tab href,但是什么也没做。非常感谢任何帮助!谢谢!
答案 0 :(得分:1)
因为<a href="#tab1">
尝试<a href="javascript:void(0);"
并使用其他属性来识别应该打开哪个div,您可以添加以data-
开头的任何属性,例如data-id="#tab1
然后读取该属性,
或者您可以重新考虑HTML的设置方式,
如果你真的必须保持原样,那么你可以尝试
var $tabsNav = $('.tabs-nav'),
$tabsNavLis = $tabsNav.children('a'), //this line changed
$tabContent = $('.tab-content');
然后:
$tabsNavLis.on('click', function(e) {
e.preventDefault(); //now this is <a> click , not <li> click
var $this = $(this).parent();
$this.siblings().removeClass('active').end()
.addClass('active');
$this.parent().next().children('.tab-content').stop(true,true).hide()
.siblings( $this.find('a').attr('href') ).fadeIn();
});