0
我創建一個jQuery數據表中的一類,它的工作原理,但我有與下面的代碼段的一些問題:的Javascript傳遞參數箭頭功能
let table = $("#" + this.name).DataTable();
table.on('click', 'tr td.details-control', function() {
let detailRows = [];
let tr = $(this).closest('tr');
let row = table.row(tr);
let idx = $.inArray(tr.attr('id'), detailRows);
if (row.child.isShown()) {
tr.removeClass('details');
row.child.hide();
detailRows.splice(idx, 1);
}
else {
tr.addClass('details');
let rowData = table.row(tr).data();
row.child(this.formatChildRows(rowData)).show();
if (idx === -1) {
detailRows.push(tr.attr('id'));
}
}
});
,因爲道路「這個」作品
table.on('click', 'tr td.details-control', (event) => {
...
});
功能現在運行但「表」:在JavaScript中,函數formatChildRows不再發現,因爲這不再是指類,但到錶行,我改變,像這樣的代碼解決了這個變量不再可訪問,因爲它在箭頭函數中未定義。
我嘗試很多東西,如:
evt => function(table) {}
代替:
(event) =>
我想這可能工作,但在函數內部的代碼不再被某種原因執行。
任何想法?
除非您在回調中用'(table)=>'或'var table'替代它,或者在'table'應該繼續引用原始'table'值之後更改它的值。你能告訴我們一些代碼不完整的例子嗎? – JLRishe
'函數現在運行,但「表」變量不再可訪問,因爲它在箭頭函數中是未定義的。「 - >否?! –