dynatree の検索機能を使用する必要があるため、次の回避策を見つけました: JQuery Dynatree - search node by name
ただし、展開されたノード区切り記号までのみ検索する必要があります。(jQuery ui-slider を使用して展開区切り文字を動的に設定しています)。最初に、minExpandedLevel まで検索する必要があります。スライダーを動かすと、ダイナツリーは一致する結果のみをスライダーの値に相当する拡張レベルで表示する必要があります。
minExpandLevel をリセットして dynatree をリロードしようとしても、結果としてすべての (一致しない場合でも) ノードが返されるため、うまくいきません。
だから私は次のような制限パラメータを検索機能に追加したい:
$(selector).dynatree("getRoot").search(パターン、制限);
誰もこれを行う方法を知っていますか?
これが私のコードです:
ダイナツリー:
$.ui.dynatree.nodedatadefaults["icon"] = false;
$("#resultTree").dynatree({
minExpandLevel: 4,
persist: false,
classNames: {
vline: "no-bg",
connector: "",
expander: "ui-helper-hidden"
},
children: myJsonData
});
スライダー:
timeout = false;
searchTerm = $("#searchText").val();
$("#treeslider").slider({
min: minTick,
max: maxTick,
range: "min",
slide: function (event, ui) {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(function () {
$("#resultTree").dynatree("getRoot").search(searchTerm, ui.value);
}, 500);
}
});