Сокрытие столбцов таблицы и чекбокс

215
26 декабря 2017, 16:14

Делаю сокрытие столбцов таблицы по чекбоксам. JS код взял отсюда.

Проблема в следующем. Столбцы скрываются, но чекбоксы не помечаются выбранными. Если убрать из кода e.preventDefault();, то тогда с чекбоксами все в порядке, но столбцы не скрываются. При клике по чекбоксу не добавляются никакие классы, поэтому я не понимаю, что делать.

Как это решить?

    var table = $('#accounts').dataTable(); 
 
    $('label.toggle-vis').on('click', function (e) { 
        e.preventDefault(); 
       // Get the column API object 
        var column = table.api().column($(this).attr('data-column')); 
        // Toggle the visibility 
        column.visible(!column.visible()); 
    });
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" rel="stylesheet"/> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.min.js"></script> 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js"></script> 
<script src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script> 
 
<label class="custom-control custom-checkbox toggle-vis" data-column="0"> 
    <input type="checkbox" class="custom-control-input"> 
    <span class="custom-control-indicator"></span> 
    <span class="custom-control-description">Id</span> 
</label> 
 
<label class="custom-control custom-checkbox toggle-vis" data-column="1"> 
    <input type="checkbox" class="custom-control-input"> 
    <span class="custom-control-indicator"></span> 
    <span class="custom-control-description">Name</span> 
</label> 
 
<table id="accounts" class="table"> 
  <thead> 
    <tr> 
        <th>Id</th> 
        <th>Name</th> 
     </tr> 
   </thead> 
      <tbody> 
        <tr> 
          <td>1</td><td>Jack</td> 
        </tr> 
        <tr> 
          <td>2</td><td>Peter</td> 
        </tr> 
      </tbody> 
    </table>

Answer 1
$('label.toggle-vis input').on('click', function (e) {
   // Get the column API object
   var column = table.api().column($(this).closest("label").data('column'));
   // Toggle the visibility
   column.visible(!column.visible());
});
READ ALSO
Исполнение html страниц на linux сервере

Исполнение html страниц на linux сервере

Есть linux серверНа нем лежит html страница

194
JS - кроссдоменный запрос любой ценой

JS - кроссдоменный запрос любой ценой

Есть ли вообще способы отправить кроссдоменный запрос на JavaScript? Может быть как-нибудь через атрибут src? PS

223
Ссылка на файл, который находится в другой папке

Ссылка на файл, который находится в другой папке

Как мне создать ссылку на php файл, который находится в другой папке? Всё происходит на хостинге

207
JS Автообновление диалога

JS Автообновление диалога

Столкнулась с проблемой обновления блока, в котором отображаю сообщения

204