jQuery标签,跳到页面顶部,如何停止?

时间:2012-11-20 02:32:11

标签: jquery tabs

我已经阅读了其他帖子,但是当单击一个标签时,我仍然无法获得页面跳转到顶部。继承人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,但是什么也没做。非常感谢任何帮助!谢谢!

1 个答案:

答案 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();


    });