选项卡需要单击两次才能将选项卡更改为活动选项卡

时间:2017-09-08 04:16:24

标签: javascript jquery html tabs bootstrap-tabs

我遇到了有关活动标签的问题。我使用.append()来构建标签,并且我没有使用href来连接标签数据。
当我单击tab .console log()以显示活动选项卡的文本时 我的问题是,当我点击标签2时,活动标签的文本仍然是标签1 我必须再次单击选项卡2,活动选项卡将更改为选项卡2。 我没有看到任何有同样问题的人,所以希望有人可以帮助我。 感谢。

 <!DOCTYPE html>
        <html lang="en">
        <head>
          <title>Bootstrap Example</title>
          <meta charset="utf-8">
          <meta name="viewport" content="width=device-width, initial-scale=1">
          <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
          <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
        </head>
        <body>

        <div class="container">
          <h2>Dynamic Tabs</h2>
          <ul class="nav nav-tabs">
          </ul>
        </div>

        <script>
        $(document).ready(function(){
            for(i = 1;i <= 2 ; i++){
              renewid='tab_'+i;
              if(i == 1){
                $('.nav-tabs').append("<li class='active'><a data-toggle='tab' id=" + renewid + ">Chart"+ [i] +"</a></li>");
              }
              else{
                $('.nav-tabs').append("<li><a data-toggle='tab' id=" + renewid + ">Chart"+ [i] +"</a></li>");
              }
            };
            $(".nav-tabs a").click(function(){
                alert('set_active = ' + $('.nav-tabs .active').text());
            });
        });
        </script>

        </body>
        </html>

2 个答案:

答案 0 :(得分:0)

使用shown.bs.tab事件代替click

$(".nav-tabs a").on('shown.bs.tab', function () {
    alert('set_active = ' + $('.nav-tabs .active').text());
});

答案 1 :(得分:-1)

您只需要申请&quot; addClass&#39;点击事件时的方法,您可以在下面的代码段中看到:

&#13;
&#13;
$(document).ready(function(){
            
            for(i = 1;i <= 2 ; i++){
              renewid='tab_'+i;
              if(i == 1){
                $('.nav-tabs').append("<li><a data-toggle='tab' id=" + renewid + ">Chart"+ [i] +"</a></li>");
              }
              else{
                $('.nav-tabs').append("<li><a data-toggle='tab' id=" + renewid + ">Chart"+ [i] +"</a></li>");
              }
            };
            $(".nav-tabs a").click(function(){
            $('.nav-tabs').find('li').removeClass('active');
            $(this).closest('li').addClass('active')
                alert('set_active = ' + $('.nav-tabs .active').text());
            });
        });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
          <h2>Dynamic Tabs</h2>
          <ul class="nav nav-tabs">
          </ul>
        </div>
&#13;
&#13;
&#13;