我的jQuery代码中,我需要在DataTable中加载一些数据,然后,仅在正确填充此DataTable之后再进行操作。
我的代码当前看起来像:
function f () {
/* ... */
$('#my_datatable').DataTable().ajax.url(my_url).load();
/* Do some stuff */
}
f();
/* Do some more stuff */
我希望/* Do some stuff */
或/* Do some more stuff */
仅在我的DataTable很好地显示后才能执行。
我对javascript的异步性很陌生,因此我可能会误解我的需求,但是我想我想做些类似的事情:
async function f () {
/* ... */
await $('#my_datatable').DataTable().ajax.url(my_url).load();
/* Do some stuff */
}
f().then (function () {
/* Do some more stuff */
});
这是我通常想等待$.get()
完成的工作。
是否可以用DataTable的.ajax.url().load()
做这种事情?
答案 0 :(得分:0)
如果我要在表完全初始化,加载和绘制数据后运行一些代码,通常会使用内置的DataTables callback initComplete。
$('#example').dataTable( {
"initComplete": function(settings, json) {
alert( 'DataTables has finished its initialisation.' );
}
} );
答案 1 :(得分:0)
您需要将回调传递给load方法 https://datatables.net/reference/api/ajax.url().load()
示例:
function f () {
$('#my_datatable').DataTable().ajax.url(my_url).load(callback);
}
function callback(){
alert('I am completely loaded');
}
f();
您还可以将函数嵌套在回调中。