【问题标题】:jQuery datatables buttons defaultsjQuery 数据表按钮默认值
【发布时间】:2017-01-03 22:41:12
【问题描述】:

我需要将一些样式应用于所有 DataTables 按钮,以便它们与我网站上的其余按钮相匹配。我可以使用the className option 来添加它,如下所示,但我不想每次都提供相同的东西。

手动示例

$('#myTable').DataTable({
  buttons: [
    {
      text: 'I look like a button',
      className: 'icanhazdefalt'
    }
  ]
})

我在文档中看到默认值为undefined。我在文档中找不到可以覆盖此选项或其他选项的默认值的任何地方。这可能吗?比如:

$.fn.DataTable.Buttons.options.extend({
  className: 'icanhazdefalt'
})

我需要的是能够为插件本身设置默认值(而不是为特定实例)。然后从那时起我在页面上创建的所有实例都将具有我指定的默认值。我可以在插件脚本之后包含设置默认值的脚本(可能在布局文件中),这样我就不必手动执行任何操作来让所有后续实例都具有默认的类名(但仍然可以通过显式覆盖它如上面的“手动示例”所示)。

【问题讨论】:

    标签: datatables default-value datatables-1.10 datatable-buttons


    【解决方案1】:

    用途:

    $('#myTable').DataTable( {
        buttons: {
            buttons: [
                { extend: 'copy', className: 'copyButton' },
                { extend: 'excel', className: 'excelButton' }
            ]
        }
    } );
    

    参考:https://datatables.net/reference/option/buttons.buttons.className

    编辑:可能有更好、更简单的方法,但是,这就是我现在想出的。

    //DataTable
    var table= $("#myTable").DataTable( {
        dom: 'Bfrtip',
        buttons: [
            {
                text: 'I look like a button'
            },
            {
                text: 'I dont'
            }
        ]
    } );
    
    //Add class to all buttons
    $(table.buttons()).each(function(){
        $($(this)[0]["node"]).addClass("sampleClass");
    });
    

    您还可以通过为buttons() 提供一个参数来更改您的按钮选择。 请参阅此link

    【讨论】:

    • 您提供的链接与问题中的链接相同。您提供的示例与问题中的示例相似。我真正想要的是如何通过设置每次都使用的默认值来避免每次都这样做(除非在每个实例的基础上被按钮 className 选项中指定的内容覆盖)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    相关资源
    最近更新 更多