すべての子がjson呼び出しによって非同期で読み込まれるJsTreeインスタンスがあります。
ユーザーがリーフノードを選択したかどうかをどのように検出できますか?
私はajaxの成功コールバックを使用しようとしましたが、もちろん、「+」でノードを開くだけでも呼び出されます。「子ノードがロードされました」のようなイベントはありますか?
ラデク、その通りです。
結局、私は別の解決策を思いついた。サーバー上の子ノードを要求しているときに、ノードに子ノードがあるかどうかを検出します。応答dtoにフラグを追加することにより、次のようにクライアントでこの情報を使用できます。
success: function (data) {
return $.map(data.d, function (item) {
if(item.HasChildren)
return {
data: item.data,
state: item.state,
attr: item.attr,
children: item.children
};
else
return {
data: item.data,
attr: item.attr
};
})
}
応答に「children」および「state」属性がない場合、jsTreeはこれをリーフノードとして認識します。これで、「node_select」でjsTreeの.is_leaf(node)メソッドを使用できます。