2

すべての子がjson呼び出しによって非同期で読み込まれるJsTreeインスタンスがあります。

ユーザーがリーフノードを選択したかどうかをどのように検出できますか?

私はajaxの成功コールバックを使用しようとしましたが、もちろん、「+」でノードを開くだけでも呼び出されます。「子ノードがロードされました」のようなイベントはありますか?

4

1 に答える 1

2

ラデク、その通りです。

結局、私は別の解決策を思いついた。サーバー上の子ノードを要求しているときに、ノードに子ノードがあるかどうかを検出します。応答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)メソッドを使用できます。

于 2012-05-31T13:32:22.957 に答える