jQuery dataTables 1.10.5 自定义属性
jQuery dataTables 1.10.5 custom properties
我正在尝试设置一个自定义 属性 并能够稍后 access/edit 它。这甚至可能吗,我在旧版本中看到可以使用 fnSettings 但我如何在 1.10.5 中使用它?
$('#table').DataTable({
customProp: 'Hello World'
});
然后单击按钮,我想我可以执行以下操作:
$('.test').on('click', function(e){
var table = $('#table').DataTable();
console.log(table.settings.oInit.customProp);
}
但是我得到:未捕获的类型错误:无法读取未定义的 属性 'customProp'
有人知道我该怎么做吗?
您可以使用jQuery data()
方法将数据存储在关联元素中。例如:
$('#table').data('customProp', 'Hello World');
稍后您可以检索它,如下所示:
$('.test').on('click', function(e){
console.log($('#table').data('customProp'));
}
出于某种原因,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);
演示 (1.10.5) -> http://jsfiddle.net/ajLe1484/
显然 dataTables 在回调中传递了一个对象,并且 table 实例以某种方式传递了一个不同的 "cleaned up" 对象。我有点惊讶 dataTables 能做到这一点。也用 1.10.x 对其进行了测试 - 行为是相同的,所以这不是因为 oInit
已被 1.10.5 淘汰。
对于 DataTables 1.10.10 和更新版本,以下将起作用:
$('#table').DataTable({
customProp: 'Hello World'
});
console.log($('#table').DataTable().init().customProp);
我正在尝试设置一个自定义 属性 并能够稍后 access/edit 它。这甚至可能吗,我在旧版本中看到可以使用 fnSettings 但我如何在 1.10.5 中使用它?
$('#table').DataTable({
customProp: 'Hello World'
});
然后单击按钮,我想我可以执行以下操作:
$('.test').on('click', function(e){
var table = $('#table').DataTable();
console.log(table.settings.oInit.customProp);
}
但是我得到:未捕获的类型错误:无法读取未定义的 属性 'customProp'
有人知道我该怎么做吗?
您可以使用jQuery data()
方法将数据存储在关联元素中。例如:
$('#table').data('customProp', 'Hello World');
稍后您可以检索它,如下所示:
$('.test').on('click', function(e){
console.log($('#table').data('customProp'));
}
出于某种原因,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);
演示 (1.10.5) -> http://jsfiddle.net/ajLe1484/
显然 dataTables 在回调中传递了一个对象,并且 table 实例以某种方式传递了一个不同的 "cleaned up" 对象。我有点惊讶 dataTables 能做到这一点。也用 1.10.x 对其进行了测试 - 行为是相同的,所以这不是因为 oInit
已被 1.10.5 淘汰。
对于 DataTables 1.10.10 和更新版本,以下将起作用:
$('#table').DataTable({
customProp: 'Hello World'
});
console.log($('#table').DataTable().init().customProp);