เมนูต้นไม้ jQuery EasyUI - เมนูต้นไม้เพิ่มแม่ / โหนดลูก
โดยปกติแล้วมันหมายถึงโหนดต้นไม้ในทุกวิถีทางโหนดเก็บ parentId นี้จะเรียกว่าถ้อยคำรูปแบบรายการ โหลดโดยตรงข้อมูลลงในเมนูต้นไม้ (ต้นไม้) ไม่ได้รับอนุญาต แต่เราสามารถก่อนที่ต้นไม้เมนูโหลดใส่ลงในมาตรฐานต้นไม้เมนูมาตรฐาน (ต้นไม้) รูปแบบข้อมูล ต้นไม้ (ต้นไม้) plug-in ให้ตัวเลือก '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 ++) { (ถ้าแถว [I] .id == parentId) กลับจริง; } กลับเท็จ; } โหนด var = []; // รับโหนดระดับบนสุด สำหรับ (var i = 0; i <rows.length; i ++) { แถว var = แถว [I]; ถ้า (! มีอยู่ (แถว row.parentId)) { nodes.push ({ ID: row.id, ข้อความ: row.name }); } } สิ่งที่ต้องทำ var = []; สำหรับ (var i = 0; i <nodes.length; i ++) { toDo.push (โหนด [I]); } ในขณะที่ (toDo.length) { var โหนด = toDo.shift (); // โหนดผู้ปกครอง // รับโหนดเด็ก สำหรับ (var i = 0; i <rows.length; i ++) { แถว var = แถว [I]; ถ้า (row.parentId == node.id) { เด็ก var = {ID: row.id ข้อความ: row.name}; ถ้า (node.children) { node.children.push (เด็ก); } else { node.children = [เด็ก]; } toDo.push (เด็ก); } } } กลับโหนด; }