jQueryのEasyUIツリーメニュー - ツリーメニューは、親/子ノードを追加します。
通常は、ノードがのParentIDを格納するあらゆる方法であるツリーノードを表します。 これは、隣接リストモデルと呼ばれています。 ダイレクト・ロードは、メニューツリー(木)にデータが許可されていません。 しかし、我々は、メニューツリーをロードする前に、標準的な標準メニューツリー(ツリー)データ形式にそれを置くことができます。 ツリー(木)プラグインが機能するには 'loadFilter'オプションを提供し、それはこの機能を実現することができます。 これは、着信データを変更する機会を提供します。 このチュートリアルでは、ツリーメニュー(木)に/子ノードをロードするために「loadFilter「親関数を使用する方法を示しています。
親/子ノードデータ
[ { "ID":1、 "parendId":0、 "名前": "食品"}、 { "ID":2、 "PARENTID":1、 "名前": "フルーツ"}、 { "ID":3、「PARENTID ":1、"名前 ":"野菜 "}、 { "ID":4、「PARENTID ":2、"名称 ":"りんご "}、 { "ID":5、「PARENTID ":2、"名称 ":"オレンジ "}、 { "ID":6、「PARENTID ":3、"名前 ":"トマト "}、 { "ID":7、「PARENTID ":3、"名前 ":"ニンジン "}、 { "ID":8、「PARENTID ":3、"名前 ":"キャベツ "}、 { "ID":9、「PARENTID ":3、"名前 ":"ポテト "}、 { "ID":10、 "PARENTID":3、 "名前": "レタス"} ]
メニューツリー(ツリー)を作成 'loadFilter'を使用
$( '#Ttの')。ツリー({ URL:「データ/ tree6_data.json」、 loadFilter:関数(行){ 変換(行)を返します。 } });
変換の実現
関数変換(行){ 関数が存在する(行、PARENTID){ 以下のために(VAR iは= 0; iはrows.lengthを<;私は++){ (行[i]は.ID == PARENTID)がtrueを返す場合。 } falseを返します。 } VARノード= []; //トップレベルのノードを取得します。 以下のために(VAR iは= 0; iはrows.lengthを<;私は++){ VAR行=行[i]は、 場合(!が存在する(行、row.parentId)){ nodes.push({ ID:row.id、 テキスト:row.name }); } } するvar TODO = []; 以下のために(VAR I = 0; iはnodes.lengthを<;私は++){ toDo.push(ノード[i])と、 } しばらく(toDo.length){ varの各ノード= toDo.shift(); //親ノード //子ノードを取得します。 以下のために(VAR iは= 0; iはrows.lengthを<;私は++){ VAR行=行[i]は、 {(row.parentId == node.id)の場合 VARの子= {ID:row.id、テキスト:row.name}; {(node.children)の場合 node.children.push(子)。 }エルス{ node.children = [子供]。 } toDo.push(子)。 } } } ノードを返します。 }