2016-04-15 12 views
2

JsTreeで作業を開始しましたが、ノードの移動に問題があります。ツリービューを作成するためにHTMLリストが使用されており、ツリーを作成するときにすべての情報がページに表示されます。追加のAJAX呼び出しはありません。JsTreeはレンダリングされていないノードからhtml属性を取得します

親ノードを選択するとき、私はすべての子(いくつかのカスタムHTML属性)から情報を取得したいと考えています。フルjQueryオブジェクトとして(すべての子供を含む)は、ノードと、私は必要なすべての情報を返す「changed.jstree」イベントに

data.instance.get_node("[id='" + value + "']"); 

:私が使用して親を選択する場合。

しかし、子が画面に描画されていない(親が展開されていない)ときに同じ行を使って情報を取得すると、jQueryオブジェクトではなく "false"が返されます。

JsTree私もそれが作成されているときに試してみて、すべてのノードをロードするために、次の行を使用して作成:

jQuery(controlSelector).jstree("load_all"); 

私が何か間違ったことをやっていますか?子ノードがレンダリングされず、親ノードが展開されていない場合、情報を子ノードから取得する方法はありますか?

あなたは

答えて

0

あなたはそのすべての子のIDをつかむために選択したノードのchildren_dプロパティを使用することができますありがとうございました。以下のコードを確認し、デモ-Fiddleを確認してください。

var selectedNodes = $('#container').jstree().get_selected(true); 

for(var i=0, len=selectedNodes.length; i<len; i++) { 
    // access id's with selectedNodes[i].children_d ... 
} 
+0

あなたの答えをありがとう、私は子供をOK、私は問題を取得している子供のjQueryオブジェクトを得ることができます。親が展開されていない場合、子要素のIDを使用してその子要素のjQueryオブジェクトを取得すると、jQueryは、子要素が画面に表示されないため、情報ではなくブール値 "false"を返します。取得しようとしている未レンダリングノードのjQueryオブジェクトです。 –

+0

隠されたノードのjqueryオブジェクトで何をしますか? –

+0

私が使用するノードごとに、ノードに追加したカスタムHTML属性を取得します。node.li_attr ["data-type"]で解析する必要のある情報を取得します。しかし、子ノードは隠されているとレンダリングされません。 –

0

私は、すべてのレンダリングされていないデータは

jQuery("#container").jstree(true)._model.data 

に格納されツリー上のすべてのノードをループを発見し、私は私が必要なものを取得するように設定条件文にノードと一致しています

tree.get_node("#value"); 

ノードが現在スクリーンに描画されていない場合はfalseを返します。

関連する問題