我正在为jQuery DataTable编写一个小的自定义插件,它使用标准的表级选项启用它。我有两个问题:
例如,我这样定义我的表:
$('#example').DataTable( {
myPlugin: true,
columns: [
{
name: 'col1',
myPluginOption: ['optionVal1', 'optionVal2']
},
.
.
.
]
} );
然后在插件中我想将听众添加到' dt.init'事件,并在其中做这样的事情:
...
_dtInit: function() {
this.dt.columns().every(function() {
//1. retrieve the value of my custom option
var myOptions = this.myPluginOption; //or this.myPluginOption() ?
...
//2. set a default column option to a new value that
//wasn't known at initial definition (e.g.: dataOrder)
this.dataOrder = [newInt1, newInt2];
});
}
谢谢!
答案 0 :(得分:0)
找到一种方法利用这样一个事实:当一个监听器被添加到DT事件时,设置被传递给监听器函数。
然而,我们需要使用原始/旧样式选项名称。属性名称在内部由DT映射到旧属性名称,并且仅存在于先前选项名称状态的设置对象中。即:orderData选项作为aDataSort存在于设置对象中。这是完整的参数转换参考:https://datatables.net/upgrade/1.10-convert
...
_dtInit: function(e, settings) {
$.each(settings.aoColumns, function(index, column) {
//1. retrieve the value of my custom option
var myOptions = column.myPluginOption;
...
//2. set a default column option to a new value that
//wasn't known at initial definition (e.g.: dataOrder)
//*** Using old option name for dataOrder here:
this.aDataSort = [newInt1, newInt2]
});
}