fnPageChange没有延迟工作? JS序列错误?

时间:2012-10-23 14:23:08

标签: javascript jquery datatables sequence jquery-datatables

我遇到了一个奇怪的问题,它发生在我维护的几个使用数据表的网站上。

每当我使用fnPageChange时,它都不起作用,除非它周围有一个setTimeout;

setTimeout(function() { oTable.fnPageChange(whatPage); }, 100);

或之前有警报

alert('starting'); oTable.fnPageChange('last');

我理解这可能是某种序列错误,但我不确定为什么在多个项目中会出现同样的问题。

这是我现在正在使用的删除功能:

function fnDelete(elem){
    if (selected.length>0) {
        var c;
        c = confirm('Are you sure you want to delete the selected ${displayTableName}?');
        if (c) {
            // Create delete url from editor url...
            var deleteURL = (urlstr.substring(0, urlstr.lastIndexOf('/') + 1)) + "delete.do";
            deleteRecord(deleteURL,selected[0]);

            if ( $('tableViewer tr').length === 0) {
                // Reload the Table
                oTable.fnPageChange('last');
                //Send them back to the last page
            }
        }
    }

}

有谁知道这可能是什么类型的问题?

这是deleteRecord:

function deleteRecord(deleteURL, iid){
    var didDelete = false;
    jQuery.ajax({
            type: "POST",
            url: deleteURL,
            dataType:"html",
            data:"recordID="+iid,
            success:function(response){
                didDelete = true;
                oTable.fnDraw(true);
                selected = [];
                selectedRecord = [];
                enableButtons(selected);
            },
            error:function (xhr, ajaxOptions, thrownError){
                if ((xhr.status >=400) && (xhr.status < 500))
                    alert(xhr.responseText);
                else
                    alert('error');
            }    
        });

    return didDelete;
}

1 个答案:

答案 0 :(得分:-1)

您可以尝试以下

oTable.page(CurrentPageNo).draw(false);

这里,oTable是Datatable的对象。