〜図
コード〜PO
// 文書負荷 $(ドキュメント).ready(関数(){ // 負荷ztreeツリー $ .fn.zTree.init($( "#treeDemo" )、設定、getJSON()); SETCHECK(); }); // 初期設定 するvar設定= { チェック:{ 有効:trueに }、 ビュー:{ dblClickExpand:falseに }、 データ:{ SimpleData:{ 有効:trueに } }、 コールバック:{ beforeClick:beforeClick、 oncheckを:oncheckを } }; // 取得した個人データは、 機能getJSON(){ VARの STR = []; $アヤックス({ タイプ: "GET" 、 URL: "/スケジュール/ GETUSER" 、 キャッシュ:falseに、 非同期:falseに、 成功:機能(結果){ STR = result.data; } }); を返すのeval(STR); // 怠惰な私〜と定義私ztreeフィールドに合わせて、バックグラウンド・リターン・データを、 @ID:識別 @ PID:親識別子 @ ID:識別 @ 名:名 @ chkDisabled:かどうかをチェック @ オープン:開始するかどうかを } // 親子関係の設定 機能をSETCHECK(){ VAR zTree = $ .fn.zTree.getZTreeObj( "treeDemo")、PY = "P"、SY = "S"、PN = "P"、SN = "S"、タイプ= { "Y":PY + SY、 "N" :PN + のSn}; zTree.setting.check.chkboxType = タイプ; } // クリックする前に 機能beforeClick(treeId、ツリーノード){ VAR zTree .fn.zTree.getZTreeObj $ =( "treeDemo" ); zTree。チェックノード(ノードツリー、!treeNode.checked、 ヌル、trueに); 戻り値 はfalseに; } // トリガチェック 機能oncheckを(E、treeId、TREENODE){ VAR zTree .fn.zTree.getZTreeObj $ =( "treeDemo" )、 ノード = zTree.getCheckedNodes(trueに)、 namearray = 新しい新しいアレイ()は、 idarrayは = 新しい新しい配列を(); // 子ノードのデータ取得 のための(VAR Iが0、L = nodes.length =を、I <L; I ++ ){ // 取得したすべてのノード IF(!ノード[I] .isParent){ // 子ノードを取得 namearray.push(ノード[I] .nameの); idarray.push(ノード[I] .ID); } // 他に{ // //取得した親をノード // } } $( "#userSel")ヴァル(namearray.join( ' ' )); $( "#userValue")ヴァル(idarray.join('、' )); } // [表示]ドロップダウンフレームULの 関数showMenuは(){である VAR cityObj = $( "#userSel" ); VAR cityOffset = $( "#userSel" ).offset(); $("#menuContent")、CSS({左:cityOffset.left + "PX"、トップ:cityOffset.top + cityObj.outerHeight()+ "PXを"}。)slideDown( "速いです" ); $( "身体")バインド( "マウスダウン"。、onBodyDown)。 } // 隐藏下拉框UL 機能hideMenu(){ $( "#menuContent")、フェードアウト( "速いです"。 )。 $( "身体")アンバインド( "マウスダウン"。、onBodyDown)。 } // 下拉框UL发生变化 機能onBodyDown(イベント){ 場合(!(event.target.id == "menuBtn" || event.target.id == "userSel" || event.target.id == " menuContent」|| $(event.target).parents( "#menuContent")。長さ> 0 )){ $(event.target).parents( "#menuContent")の長さ> 0。 hideMenu(); } } // 編集チェック・ノードは、選択されているが 、機能refreshNode(ID){ VAR checkeduser = getJSON(ID).toString()スプリット( '' ); VAR zTree = $ .fn.zTree .getZTreeObj( "treeDemo" )、 parnodes = 新しい新しいアレイ()、 のallnodes = zTree.transformToArray(zTree.getNodes())、 namearray = 新しい新しいアレイ()は、 idarrayは = 新しい新しいArray()を、 中のフラグ = trueに; // サブを取得ノードデータ ため(){VAR iはL = allnodes.length、= 0。I <L; I ++ ){ 場合(!{れるallnodes [I] .isParent) 場合 > -1(checkeduser.indexOf(れるallnodes [I] .ID)){ namearray.push(れるallnodes [I] .nameの)。 idarray.push(れるallnodes [I] .ID)。 れるallnodes [I] .checkedを = 真。 zTree.updateNode(れるallnodes [I])。 // 获取当前子节点的父节点、进行勾选 parnodes = れるallnodes [I] .getParentNode()。 もし(parnodes!= nullを parnodes.checked = 真; zTree.updateNode(れるallnodes [I])。 一方、(フラグ){ parnodes = parnodes.getParentNode()。 もし(!parnodes = ヌル){ parnodes.checked = 真; zTree.updateNode(れるallnodes [I])。// 更新节点 } 他{ フラグ = 偽。 } } } } } } $( "#userSel" ).val(namearray)。 $( "#userValue" ).val(idarray)。 }
コードの上にシンプルで、粗POは、それをすること~~