$ .fn.dataTableExt.aoFeatures.push更改设置

时间:2018-12-17 11:33:29

标签: javascript jquery datatables

我有以下代码

$.fn.dataTableExt.aoFeatures.push({
    "fnInit": function (oSettings) {
        oSettings.oScroll.sY = 5;
        return  { "oSettings":  oSettings } ;
      },
    "cFeature": "T"
});

$.extend($.fn.dataTable.defaults, {
       //"scrollY": 5,
       "dom":"T"
    });

我可以看到scrollY在功能上有所更改,但在数据表中没有任何作用,由于我必须将条件ono tableid放在其中,因此如何使用此功能覆盖默认设置,

否则我可以按照下面的方法进行操作

 $.extend($.fn.dataTable.defaults, {
           "scrollY": 5,

        });

我相信我在return语句上缺少某些东西,这些东西会覆盖这些东西

fiddle reference

1 个答案:

答案 0 :(得分:2)

由于某些原因,您的代码无法使用。首先,您使用的是过时的API。 $.fn.dataTableExt.aoFeatures.push$(...).dataTable()使用的旧API。通过像在小提琴中一样使用$(...).DataTable()(注意大写的“ D”),您可以选择使用新的API。 (了解有关使用旧API转换代码以使用新API here的信息。)使用当前API是一个不错的选择,但是您需要使用$.fn.dataTable.ext.feature.push来设置功能。<​​/ p >

这有效:

$.fn.dataTable.ext.feature.push({
    "fnInit": function (settings) {
        settings.oScroll.sY = 25;
      },
    "cFeature": "T"
});

但是,dom feature旨在指示表中元素的顺序。可以使用它来设置scrollY之类的样式,但这并不完全符合他们的想法。关键是,如果要完全指定dom,则必须指定所需的所有元素。特别是,您必须为表指定t,否则DataTable根本不会将自身附加到表。因此,您需要使用类似这样的设置表来触发您的scrollY“功能”:

$(document).ready(function() {
    var table = $('#example').DataTable({
        "dom":"Tlftip"
    });

请注意顺序很重要。 “ T”必须位于受功能更改所影响的其他元素之前。 "dom":"lftipT"不会达到预期的效果。