jQuery dataTables 1.10.5自定义属性

时间:2015-03-13 20:47:21

标签: jquery jquery-datatables datatables-1.10

我正在尝试设置自定义属性,以后可以访问/编辑它。这是否可能,我在旧版本中看到一个可以使用fnSettings但我如何在1.10.5中使用它?

$('#table').DataTable({
        customProp: 'Hello World'
});

然后点击一下按钮,我想我可以做到以下几点:

$('.test').on('click', function(e){
      var table = $('#table').DataTable();
      console.log(table.settings.oInit.customProp);
 }

但是我得到:Uncaught TypeError:无法读取未定义的属性'customProp'

有谁知道我该怎么做?

3 个答案:

答案 0 :(得分:1)

您可以使用jQuery data()方法将数据存储在关联元素中。例如:

$('#table').data('customProp', 'Hello World');

稍后您可以检索它,如下所示:

$('.test').on('click', function(e){
    console.log($('#table').data('customProp'));
}

答案 1 :(得分:1)

出于某种原因,table.settings.oInit仅在初始化时可访问。初始化后,table.settings$("#table").DataTable().settings都不会oInit(或访问初始化值的函数)。解决方法是将oInit存储在变量中:

var init;

$('#example').DataTable({
   customProp: 'Hello World',
   initComplete: function(settings) { 
       init = settings.oInit;
   }
});

现在你可以这样做:

alert(init.customProp);

demo(1.10.5) - >的 http://jsfiddle.net/ajLe1484/

显然,dataTables在回调中传递一个对象,并且表实例以不同的方式“清理”对象。我有点惊讶dataTables这样做。用1.10.x测试它 - 行为是相同的,所以不是因为oInit被1.10.5落下了。

答案 2 :(得分:1)

对于DataTables 1.10.10及更新版本,以下内容将起作用:

$('#table').DataTable({
        customProp: 'Hello World'
});

console.log($('#table').DataTable().init().customProp);