【问题标题】:Bootstrap Tab and datables in laraavel bladelaravel 刀片中的引导选项卡和数据表
【发布时间】:2020-06-29 16:40:07
【问题描述】:

我正在使用具有多个数据表的引导选项卡。我发现这个脚本会在每个选项卡中显示数据表,但我的问题是数据表一直在添加。

这是我找到的脚本:

<script type="text/javascript">
    $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
        // console.log(e.target.href);
        $('table.display').DataTable();
    })
</script>

我该如何解决这个问题?提前非常感谢您

【问题讨论】:

  • 继续添加是什么意思?
  • 我的意思是数据表脚本一直在复制。请看我的截图
  • 你不应该在每个 'shown.bs.tab' 触发器中初始化插件。它应该只在 dom 准备好时执行一次,除非你的表是动态加载的。
  • 嗨@MohammedShafeek 你能告诉我如何解决它吗?道歉我是 jQuery 的新手
  • $(document).ready(function() { $('table.display').DataTable(); });

标签: jquery laravel datatables tabs


【解决方案1】:

从“shown.bs.tab”中删除您的数据表初始化,并在 dom 准备好时将其放置如下。

$(document).ready(function() { 
  $('table.display').DataTable(); 
}); 

因为$('a[data-toggle="tab"]').on('shown.bs.tab', function(){}); 每次点击标签时都会触发。看这里DOC

【讨论】:

    【解决方案2】:

    经过考虑,这只是一种传统的修复方式。我将花时间编写仅使用一个数据表的动态代码

    //标签

    <div class="container">
      <h2>Dynamic Tabs</h2>
      <ul class="nav nav-tabs">
        <li class="active"><a data-toggle="tab" href="#home">Home</a></li>
        <li><a data-toggle="tab" href="#menu1">Contact</a></li>
    
      </ul>
    
      <div class="tab-content">
        <div id="home" class="tab-pane fade in active">
          <h3>HOME</h3>
          <p>
                                         <div class="table-responsive col-md-12">
                                          <table id="mytable" class="table table-bordered table-striped table-highlight">
                                            <thead>
                                              <tr bgcolor="#1cc88a" style="color:#fff;font-size:12px">
                                                <th>Fullname</th>
    
                                              </tr>
                                            </thead>  
                                            <tbody style="color:#000;font-size:12px">
    
                                                @foreach($data as $t)     
                                                   <tr>
                                                   <td>{{ $t->name }}</td>
    
                                                   </tr>
                                                @endforeach
                                                </tbody>
    
                                          </table>
                                           <hr />
                                        </div>
          </p>
        </div>
        <div id="menu1" class="tab-pane fade">
          <h3> <div class="table-responsive col-md-12">
                                          <table id="mytable2" class="table table-bordered table-striped table-highlight">
                                            <thead>
                                              <tr bgcolor="#1cc88a" style="color:#fff;font-size:12px">
                                                <th>Fullname</th>
                                                <th>Phone</th>
                                              </tr>
                                            </thead>  
                                            <tbody style="color:#000;font-size:12px">
    
                                                @foreach($data as $t)     
                                                   <tr>
                                                   <td>{{ $t->name }}</td>
                                                   <td>{{ $t->phone }}</td>
                                                   </tr>
                                                @endforeach
                                                </tbody>
    
                                          </table>
                                           <hr />
                                        </div></h3>
          <p>.</p>
        </div>
    
      </div>
    </div>
    

    //javascript

    <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
    <script src="https://cdn.datatables.net/buttons/1.5.2/js/dataTables.buttons.min.js"></script>
    <script src="https://cdn.datatables.net/buttons/1.5.2/js/buttons.print.min.js"></script>
    
    <script>
    
     $(document).ready(function() {
        $('#').DataTable();
      } );
    
      $(document).ready(function() {
          $('#mytable').DataTable( {
              dom: 'Bfrtip',
              "pageLength": 10,
              buttons: [
                  {
                      extend: 'print',
                      customize: function ( win ) {
                          $(win.document.body)
                              .css( 'font-size', '10pt' )
                              .prepend(
                                  ''
                              );
    
                          $(win.document.body).find( 'table' )
                              .addClass( 'compact' )
                              .css( 'font-size', 'inherit' );
                      }
                  }
              ]
          } );
      } );
    
    
    
    $(document).ready(function() {
              $('#mytable2').DataTable( {
                  dom: 'Bfrtip',
                  "pageLength": 10,
                  buttons: [
                      {
                          extend: 'print',
                          customize: function ( win ) {
                              $(win.document.body)
                                  .css( 'font-size', '10pt' )
                                  .prepend(
                                      ''
                                  );
    
                              $(win.document.body).find( 'table' )
                                  .addClass( 'compact' )
                                  .css( 'font-size', 'inherit' );
                          }
                      }
                  ]
              } );
          } );
    
    
    </script>
    

    【讨论】:

    • 您好,非常感谢@julius,它也可以使用,但我选择使用 Mohammed Shafeek 的建议。再次感谢你
    猜你喜欢
    • 2018-11-26
    • 2017-05-29
    • 1970-01-01
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 2015-01-18
    • 1970-01-01
    相关资源
    最近更新 更多