Bootstrap选项卡 - 下一个和上一个

4
我有一个关于我的 Bootstrap 标签页的问题。
我在“下一页”按钮上定义了一个“scrollTop”函数。滚动正常工作,但标签从1跳到3。
我的 JS 代码:
<script>

$('.btnNext').click(function(){

     $('html, body').animate({
        scrollTop: jQuery(".expect").offset().top
    }, 800,

    function () {
          $('.nav-tabs > .active').next('li').find('a').trigger('click');
    }
);

});

  $('.btnPrevious').click(function(){
  $('.nav-tabs > .active').prev('li').find('a').trigger('click');
});

</script>

HTML代码:
<div class="step-tabs">
    <ul class="nav nav-tabs" role="tablist">
        <li class="nav-item active" style="padding:3px;">
            <a class="nav-link" data-toggle="tab" href="#tab1" role="tab">STAP 01</a>
        </li>
        <li class="nav-item" style="padding:3px;">
            <a class="nav-link" data-toggle="tab" href="#tab2" role="tab">STAP 02</a>
        </li>
        <li class="nav-item" style="padding:3px;">
            <a class="nav-link" data-toggle="tab" href="#tab3" role="tab">STAP 03</a>
        </li>
        <li class="nav-item" style="padding:3px;">
            <a class="nav-link" data-toggle="tab" href="#tab5" role="tab">STAP 03</a>
        </li>
        <li class="nav-item" style="padding:3px;">
            <a class="nav-link" data-toggle="tab" href="#tab5" role="tab">STAP 03</a>
        </li>
        <li class="nav-item" style="padding:3px;">
            <a class="nav-link" data-toggle="tab" href="#tab6" role="tab">STAP 03</a>
        </li>
    </ul>
</div>
<div class="step-panes">
    <!-- Tab panes -->
    <div class="tab-content">
        <div class="tab-pane active" id="tab1" role="tabpanel">
            <p>CONTENT TABS 01<br><br><br><br><br><br><br><br><br><br>XXXXXX<br><br><br><br><br><br><br>XXXXXXX<br><br><br><br><br><br><br></p><a class="btn btn-primary btnNext">Next</a>
        </div>
        <div class="tab-pane" id="tab2" role="tabpanel">
            <p>CONTENT TABS 01<br><br><br><br><br><br><br><br><br><br>XXXXXX<br><br><br><br><br><br><br></p><a class="btn btn-primary btnNext">Next</a> <a class="btn btn-primary btnPrevious">Previous</a>
        </div>
        <div class="tab-pane" id="tab3" role="tabpanel">
            <p>CONTENT TABS 03</p><a class="btn btn-primary btnNext">Next</a> <a class="btn btn-primary btnPrevious">Previous</a>
        </div>
        <div class="tab-pane" id="tab4" role="tabpanel">
            <p>CONTENT TABS 03</p><a class="btn btn-primary btnNext">Next</a> <a class="btn btn-primary btnPrevious">Previous</a>
        </div>
        <div class="tab-pane" id="tab5" role="tabpanel">
            <p>CONTENT TABS 03</p><a class="btn btn-primary btnNext">Next</a> <a class="btn btn-primary btnPrevious">Previous</a>
        </div>
        <div class="tab-pane" id="tab6" role="tabpanel">
            <p>CONTENT TABS 03</p><a class="btn btn-primary btnNext">Next</a> <a class="btn btn-primary btnPrevious">Previous</a>
        </div>
    </div>
</div>

2
现场演示:http://www.bootply.com/StAUKhPeWr - Adrian Duquenoy
尝试删除代码的部分,直到确定问题的原因。 - Carol Skelly
1个回答

2
这段代码引起了问题(采用Skelly的方法)。
 $('html, body').animate({
        scrollTop: jQuery(".expect").offset().top
    }, 800,

我找不到以上代码导致跳转的原因。但我有解决方案可以解决这个问题。 JS
$(document).ready(function() {
    $('.step-tabs').on('click', function() {
        $('html,body').animate({
            scrollTop: $(this).offset().top
        }, 800);
    });
});


$('.btnNext').click(function() {
    $('.nav-tabs > .active').next('li').find('a').trigger('click');
});


$('.btnPrevious').click(function() {
    $('.nav-tabs > .active').prev('li').find('a').trigger('click');
});

附言 - 如果有人能解释为什么他的代码不起作用,我就可以安心地去世了。

可用的BOOTPLY


代码实际上是可以工作的,但是否有解决方案可以在scrollTop完成后仅显示下一个选项卡? - Adrian Duquenoy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接