2

私はJavaScriptコーディング、特にjQueryの使用にかなり慣れていません。jsTreeを使用してJSONを介してデータを入力しようとしています。今、私の質問は関連する質問に答えられたと思いますが、私がしていることに対する具体的な答えを見つけることができないようです。jsTreeのドキュメントも参照しましたが、それでも理解できません。

以下は私が試しているコードです

buildTree : function(name, url, nodeRef) {

     $("#"+name).jstree({ 
      "json_data" : {
    "ajax" : {
     "url" : url + nodeRef,
     "data" : function(n) {
      return { id : n.attr ? n.attr("id") : 0 };
     }
    }
   },

   "plugins" : [ "themes", "json_data" ]
  });
    }

これは基本的に、JSONのjsTreeドキュメントのコードのコピーです。ここで何が起こっているのかというと、その内容のツリーのルートフォルダにデータを入力することができます。以下は、私が取得しているJSONの応答です。

[
 {
 "attr":{"id":"a3e6a1f0-ec50-4215-a6df-2065eb09115e","rel":"file"},
 "data":"File 1","state":""
 },
 {
 "attr":{"id":"b38e4a72-875b-4d69-95d3-5437f7e65575","rel":"folder"},
 "data":"Folder 1","state":"closed"
 }
]

しかし、フォルダーのノードをクリックすると、同じ値を持つ同じJSONリクエストが入力されています。

私は犯人が

"url" : url + nodeRef,

しかし、応答から取得したIDを渡す方法に迷い、最初のnodeRef値を置き換えます。コールバックを使用してみましたが、何も起こりません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

コードの次の部分では、ajaxURLへの「id」クエリ文字列パラメーターの追加がすでに処理されています。この関数は、要求されるURLのクエリ文字列パラメーターに使用されるキーと値のペアを持つオブジェクトを返します。

"data" : function(n) {       return { id : n.attr ? n.attr("id") : 0 };      } 

nodeRef変数の目的がコードにあるのかわかりません。ルートノードを見つけることですか?もしそうなら、あなたはそのために別のクエリ文字列パラメータを使用できませんでしたか?

fiddlerを使用して、jsTreeによって構築されたURLが期待どおりであることを確認します。おそらく、現在2つのidクエリ文字列パラメーターを使用してURLを作成しており、常にnodeRef変数によって提供されるものを使用していますか?

于 2011-01-19T20:24:24.990 に答える