2012-03-02 7 views
0

jsonデータとajaxを持つJS Treeを使用するアプリケーションをhttp://www.jstree.com/documentation/json_dataというドキュメントで開発しています。JSツリーが外部のAjax用に設定されている

$("#tree).jstree({ 
    "json_data": { 
     "ajax": { ... } 
    } .... 
}); 

他のjquery ajax呼び出しもドキュメント内で作成されています。今、ツリーはそれ自身の名前空間内でajax呼び出しを行い、他のajax関数との競合はありません。 ajax呼び出しに応答するサーバーに問題があるため、ドキュメントの残りの部分で使用される共通のajaxハンドラを使用してツリーのajax呼び出しをリダイレクトし、そのハンドラでツリーに戻す必要があります。

誰かがツリーの呼び出しを別の関数にリダイレクトし、そのデータをツリーに返すようにコールバックを設定する方法を提案できますか?ありがとう!

+0

なぜリダイレクトしますか?あるいは、デフォルトのjsTree ajax呼び出しに関して何を変更したいのですか? – Radek

+0

@Radek今すぐjstreeは子ノードを取得するためのajax呼び出しを行います。ツリーはそれらのノードを追加します。これはすべてjstree内で処理されます。私はツリーにajax呼び出しを行い、1)子ノード情報をツリーに戻す、または2)外部関数にノードを追加させる外部関数を呼び出すことを望みます。私は、jsonのプラグインの92行目を "return $ .ajax(s.ajax);から変更しなければならないと思う"return $ [.ajax(親ノード);]を使用する外部関数]のようなものに変換します。 –

+0

外部機能でノードを追加したいのはなぜですか? – Radek

答えて

0

私はあなたに考えを与えます。で述べたように、

json_dataプラグイン:それはあなたの要件に合うようになり、おそらくあなたはもう少しそれをうまくする必要がありますが、それは私はあなたの質問から理解した内容に何とか近いかどうかわかりませんdocumentationは、ほとんどこれを考慮してjQuery ajax settings object

と同じであり、あなたはbeforeSend() callback function

"json_data": { 
     "ajax": { 
      beforeSend: function(xhr) { 
       my_custom_function(xhr); 
      } 
     } 
    } 

を利用したカスタム関数にAjaxのクエリを実施/リダイレクトどこでカスタム関数を定義することができますどうぞ URL、要求タイプ(GET)とあなたがに渡すことができ、パラメータのカップルを設定されて

function my_custom_function(xhr) { 
    $.ajax($.extend(xhr, { 
     type: 'GET', 
     url: '/folders/tree_handler.json', 
     data: { 
      "operation": "get_children", 
      "parent_id": 1 
     } 
    })); 

    return false; 
} 

私はここでやっている:XHRオブジェクトを超えると、あなたのニーズに合わせて調整別のオブジェクトとしてのカスタム関数、もっと便利なもの(例えば、parent_idを変数にしたいなど)。

このカスタム機能でを返す必要がありますので、最初の発信者要求はキャンセルされます。

有用かどうか教えてください。

+0

提案していただきありがとうございます!私は、グローバルな.ajaxSend()を使用して、ajax呼び出しの前に関数を呼び出すことを認識していました。私はbeforeSend()コールバックを知らなかった。それは有望に見えます。私はちょうど他のものと一緒に非常にbussyを持っていますが、私はドキュメントを掘り下げ、私はこれを動作させることができるかどうかを確認する時間がかかるとき。私はあなたの投稿を続けます。 –

関連する問題