、またはinitializeTable
からapplyTableFilters
に渡されるのが理想的です。期待値を取得できません。私はList.jsを使ってテーブルを動的にしています。dynamicTable
オブジェクトを渡すか再作成する必要がありますので、テーブルをフィルタリングするために使用してください。私は以下の関数に変数を渡すためにさまざまな方法を試してみた呼び出すことなく1つの関数から別の関数に引数を渡す
function initializeTable(options) { // initializes table to be dynamic using List.js functions
var dynamicTable = new List("table-content", options);
dynamicTable.on("updated", function (list) { // writes a message to the user if no results are found
if (list.matchingItems.length == 0) {
document.getElementById("no-results").style.display = "block";
}
else {
document.getElementById("no-results").style.display = "none";
}
});
console.log(dynamicTable);
console.log(options);
console.log(arguments.length);
applyTableFilters.bind();
}
:ここ
は、HTMLテーブルからList.jsオブジェクトを作成する関数です。私は.call
と
applyTableFilters(args)
と
.apply
を試しましたが、ボタンからのクリックイベントがオフになったとき(ここには表示されていません)にのみ、ここから関数を実行したくないという問題があります。
function applyTableFilters(dynamicTable) {
var form = document.getElementById("filter-form");
//console.log(options);
//var dynamicTable = new List("table-content", options);
console.log(dynamicTable);
var filters = form.querySelectorAll('input[type="checkbox"]:checked');
dynamicTable.filter(function (item) {
console.log(item);
console.log(item._values);
if (item.values().id == 2) {
return true;
}
else {
return false;
}
//var filterStrings = [];
//console.log(filters);
//for (var i = 0; i < filters.length; i++) {
// var filterVal = filters[i].value;
// var filterString = "(" + item.values().column == filterVal + ")"; // filterVal.contains(item.values().column) ||
// filterStrings.push(filterString);
// console.log(filterVal);
// console.log(filterString);
//}
//console.log(filterStrings);
//var filterString = filterStrings.join(" && ");
//console.log(filterString);
//return filterString;
});
}
私が使用した:
この
は、私はそれを使用してフィルタ機能を作るためにオブジェクトを渡して続行したい機能であるI以来、両者の間にapplyTableFilters.bind(this, dynamicTable/options);
applyTableFilters.bind(null, dynamicTable/options);
applyTableFilters.bind(dynamicTable/options);
切り替え私はいつもマウスのイベントが渡され、それは私が探しているオブジェクトの正しいタイプでもありません。適切なオブジェクトを渡すにはどうすればよいですか?また、最初の関数のすべての値は空ではなく、期待どおりに値が設定されているため、元の変数は未定義またはnullではありません。前もって感謝します。
方法。その後、必要に応じて他のargsでラッパー関数を呼び出します。ここでは単純な[JSFiddleの例](https://jsfiddle.net/BloodyKnuckles/76bq0pyw/)という意味です。 – bloodyKnuckles
@bloodyKnuckles前にこれをやろうとしましたが、この場合どのように動作するのか分かりません。 'shell()'関数を使って 'dynamicTable'変数を取り込み、それを最後の関数に渡しますが、それをフィードするためには、渡す必要のある同じ変数が必要です。作業? Ex。 'var dynamicTable = shell()'しかし、パラメータを渡す必要があります、私が意味するものを知っている? – LaLaLottie