【发布时间】:2017-03-16 13:59:15
【问题描述】:
我使用DataTables 来显示一些数据。我需要使每一行都可折叠,并在单击它后下载有关当前行的一些附加信息。
基于documentation我已经准备好了:
$('#tasks tbody').on('click', 'tr.details-control', function () {
var tr = $(this).closest('tr');
var row = table.row(tr);
if (row.child.isShown()) {
// This row is already open - close it
row.child.hide();
tr.removeClass('shown');
}
else {
// Open this row
row.child(getToolsForUser(row.data())).show();
tr.addClass('shown');
}
});
只有当我从getToolsForUser() 返回静态数据时它才能工作。通过AJAX获取数据并在success函数中返回,控制台报错:
TypeError: row.child(...) 未定义
我也试过$.Deferred和done(),结果是一样的^
您可以找到here 的实时示例。
(注释第 17 行并取消注释第 19 行以使其正常工作 - 但仅限于静态数据)
如何在从row.child().show() 调用的函数中使用ajax 调用?
【问题讨论】:
-
在这一行之后 'var row = table.row(tr);'什么是“行”值?
-
这是一个工作示例,jsfiddle.net/8ae3b5sz
-
@Jatinpatil :非常感谢您!请添加您的评论作为答案 - 我会将其标记为解决方案。
标签: javascript jquery ajax twitter-bootstrap datatables