Я использую bootstrap v4.2.1 и datatables v1.10.19 с расширением кнопок. Я пытаюсь сгруппировать мои кнопки "экспорт" (csvHtml5 и excelHtml5) в коллекцию, используя следующее:
var data = $('#data').DataTable({
dom: 'Bfrtip',
buttons: [
{
extend: 'collection',
className: 'btn btn-outline-success dropdown-toggle',
text: 'Export',
buttons: [
{
extend: 'csvHtml5',
className: 'dropdown-item'
},
{
extend: 'excelHtml5',
className: 'dropdown-item'
}
]
},
{
extend: 'print',
className: 'btn btn-outline-success'
}
]
});
Проблема, с которой я сталкиваюсь, заключается в том, что раскрывающийся список отображается неправильно. Я предполагаю, что поскольку родительский элемент <div>
, в котором отображаются раскрывающиеся элементы, не имеет класса dropdown-menu
. Чтобы исправить это, я добавил следующее после инициализации таблицы данных:
$('.dropdown-toggle').on('click', function() {
$('.dropdown-item').parent().addClass('dropdown-menu');
});
Это работает, только теперь выпадающие элементы отображаются на секунду, а затем исчезают.
Мой первый вопрос: правильно ли я это настраиваю?
Мой второй вопрос: если нет, то как настроить коллекцию данных так, чтобы она выглядела как выпадающий список начальной загрузки?
UPDATE
Что я заметил после создания этого поста, так это то, что если я нажму на кнопку print до нажатия кнопки export , то выпадающие элементы будут отображаться, как и ожидалось.