私は奇妙な問題に直面しています。それは、私が維持しているデータテーブルを使用するいくつかのサイトで発生しています。
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;
}