2

我正在使用带有 jquery Select2 插件的 jquery 数据表插件。我尝试用我自己的类覆盖 css 类,但它没有用。它仍然以默认的操作系统/浏览器样式显示。

4

3 回答 3

3

对于较早的事件,请使用preInit

$(document).ready(function () {
  var dataTable = $('#datatables').DataTable({
  //your datatables settings
  });
});

$(document).on( 'preInit.dt', function (settings, json) {
    $('div.dataTables_length select').select2();
});

这样,您的选择就会在数据表上的 init 事件完成之前启动......如果因为您通过 Ajax 加载数据而出现延迟,那么这可能会更好。

https://datatables.net/reference/event/preInit

于 2018-02-11T21:15:51.360 回答
1

您还可以使用 DataTables 的fnInitComplete回调,它在 DataTables 初始化时调用。请参阅其文档中的回调页面。

这是一个扩展 DataTable 默认值以实现此目的的示例:

$.extend($.fn.dataTable.defaults, {
  "bPaginate": true,                /* just an example. can be false or removed altogether */
  "bLengthChange": true,            /* another example. */

  /* ... other options ... */

  "fnInitComplete": function(oSettings, json) {
    $(".dataTables_length .select2").select2({ 
      /* select2 options, as an example */
      minimumResultsForSearch: -1 
    });
  },
});
于 2014-04-14T19:09:19.360 回答
1

加载表格后,在 select 元素上调用 select2。

$(document).ready(function() {  

   // load datatable
   jQuery('#data_table').dataTable({
    ....do settings and other stuff
   });

   $('div.dataTables_length select').select2();

});
于 2013-05-16T06:16:56.550 回答