2017-02-06 3 views
0

Я использую JQuery DataTables, и я, наконец, смог добавить «скрыть столбец» особенность здесь: https://datatables.net/examples/api/show_hide.htmlJquery марка/стилизовать если выбор выпадающий выбран

Однако вместо использования гиперссылок, я использую кнопка выпадающий следующим образом:

<div class = "btn-group">  
    <button type = "button" class = "btn btn-default btn-xs dropdown-toggle" data-toggle = "dropdown"> 
    Hide Column 
    <span class="caret"></span> 
    </button> 
    <ul class="dropdown-menu" role="menu"> 
    <li><a class="toggle-vis" data-column="1">Booking</a></li> 
    <li><a class="toggle-vis" data-column="2">Quote</a></li> 
    <li><a class="toggle-vis" data-column="3">Line</a></li> 
    ...// and so on 
    </ul> 
</div> 

Вот Jquery, который связывает данные-столбцов в DataTable и скрывает колонку:

var table = $('#dataTable').DataTable(); 

$('a.toggle-vis').on('click', function(e) { 
    e.preventDefault(); 
    var column = table.column($(this).attr('data-column')); 
    column.visible(! column.visible()); 

    ** EDIT ** 
    $(this).toggleClass("dropSelected"); 
}); 

что Wou Мне нравится делать, когда был сделан один или несколько выпадающих списков (и столбец был скрыт) отмечен выбранным выпадающим списком с проверкой или изменением цвета выделения. Таким образом, пользователь сразу же узнает, какой столбец был скрыт.

Конечно, с обратной стороны, если пользователь нажимает на ссылку, чтобы снова увидеть столбец, проверка или цвет должны исчезнуть, так как столбец будет снова виден.

** EDIT ** 

Добавление CSS в верхней части страницы:

a.toggle-vis.dropSelected {color: red;} 
+0

Это лишнее. См. Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts – j08691

+0

@ j08691 - Спасибо за головы - я точно не буду благодарить любого заранее, но почему downvote ??? Не правильно ли сформулирован мой вопрос? –

+0

Бьет меня, я не был тем, кто вас ниспровергал. – j08691

ответ

0

Учитывая, что все ваши колонки начинают в видимом состоянии, и нажав a.toggle-vis меняет их видимость, вы можете просто переключить класс элемента, например:

$('a.toggle-vis').on('click', function(e) { 
    e.preventDefault(); 
    var column = table.column($(this).attr('data-column')); 
    column.visible(! column.visible()); 

    this.toggleClass("hidden"); 
}); 

и использовать CSS для удовлетворения для того, как a.toggle-vis.hidden представлена ​​

+0

Я получаю сообщение об ошибке toggleClass. Я пытаюсь это исправить. –

+0

Используя ваш ответ, я смог достичь нужных мне результатов (с некоторыми изменениями). Спасибо, сэр. Любая вероятность, что я смогу получить «возвышение» по моему вопросу ??? –

Смежные вопросы