첫 번째 글, 구체적인 용도는 오래됐고, 코드는 직접 게시합니다: 1. 코드에서 json 데이터 형식이 사용됩니다(백그라운드가 아닌 페이지에서 직접 조립됩니다. 메소드: function _callBack(d) ) 2. 마우스 오른쪽 버튼 클릭 메뉴 및 기능 구현 제공 3. 체크박스를 사용하여 선택한 노드 ID를 가져오는 메소드 제공: function getMenuIds() 코드 복사코드는 다음과 같습니다. <br> border="5px"> 退出 style='width: 98%; height: 698px; padding-top: 10px; padding-left: 10px;padding-right: -10px;'> 테이블> <br>$("#title").html("js(jstree)와 play!framework의 과학적인 용도"); <br>$("#content").html("js(jstree) 와 play!framework의 과학적인 용도"); <br> <br>function getMenuIds(){ <br>var idArray = new Array(); <br>$("#tree").find(".jstree-checked, .jstree-undetermined ").each(function(){ <br>var isChild = true; <br>if($(this). find('li').length != 0){ <br>idArray.push($(this).attr("id")) <br>isChild = false <br>} <br>if(isChild; ){idArray.push($(this).attr("id"));} <br>}); <br>//var ids=idArray.join(','); <br>경고(idArray); <br>//경고(ID); <br>} <br>함수 nodeEvent(desc,id){ <br>$("#content").load("@{Application.codepiece()}",{"desc":desc,"id": ID}); <br>} <br>function _callBack(d){ <br>var re = [], expIds = [], attr = {}; <br>jQuery.each(d, function(i){ <br>var state = 'closed'; <br>var data = ''; <br>var onclick = ''; <br>var href = '' ; <br>var image = ''; <br>if (!d[i].leaf == '0') { <br>state = null <br>var desc = d[i].description; 🎜>var id = d[i].id; <br>image = "@{'/public/images/file.png'}" <br>onclick = "nodeEvent("" desc ""," id ") "; <br>href = "javascript:nodeEvent("" desc ""," id ");"; <br>}else{ <br>onclick = ""; <br>//image = "@{' /public/images/folder.png'}" <br>} <br>re.push({ <br>"attr": { <br>"id": d[i].id <br>}, <br>"data": { <br>"title": d[i].name, <br>"attr": {"onClick" : onclick} <br>}, <br>"state": 상태, <br>"아이콘": 이미지 <br>}); <br>반품; <br>} <br>$(function () { <br>var ctmitems = {}; <br>var isadmin = 0; <br>var 플러그인 = []; <br>#{if user} <br> ctmitems = {"ccp": null} <br>plugins = [ "themes", "json_data", "ui", "hotkeys", "crrm", 'dnd', "search", "types", "cookies" ", "contextmenu", "checkbox"]; <br>isadmin = 1; <br>$('#userinfo').html('管理员:' '${session.get("user")}') ; <br>#{/if} <br>#{else} <br>$('#userinfo').html('普통용户:''${session.get("user")}') <br>ctmitems = {"new": null,"ccp": null,"rename": null, "remove": null} <br>plugins = [ "themes", "json_data", "ui","hotkeys" , "crrm", "search", "types", "cookies", "contextmenu" ] <br>#{/else} <br>var tree = $("#tree").jstree({ <br> 테마: { <br>"theme": "apple", <br>"dots" : false, <br>"icons" : true <br>}, <br>"json_data": { <br>"ajax" : { <br>"url": '@{Application.getData()}', <br>"async": true, <br>"data": function(n){ <br>return { <br>" id" : n.attr ? n.attr("id") : null <br>}; <br>}, <br>"success": function(d){ <br>return _callBack(d); <br>} <br>}, <br>"progressive_render": true <br>}, <br>"ui":{ <br>"initially_select":["1"] <br>}, <br>"core " : { <br>"initially_open" : ["1", "7"] <br>}, <br>"contextmenu": { <br>"select_node":false, <br>"show_at_node":true, <br>"items": ctmitems <br>}, <br>"dnd" : { <br>"drop_target" : false, <br>"drag_target" : false <br>}, <br>"plugins" : 플러그인 <br>}) <br>.bind("create.jstree", function (e, data) { <br>if(data.rslt.parent.attr("id")); <br>$.post( <br>"@{Application.addNode()}", <br>{ <br>"작업" : "create_node", <br>"parentID" : data.rslt.parent.attr ("id"), <br>"name" : data.rslt.name, <br>"isleaf" : 0 <br>}, <br>function (r) { <br>if(r.status) { <br>data.inst.refresh(); <br>} <br>else { <br>$.jstree.rollback(data.rlbk) <br>alert("叶子节点不能再有子节点!") ; <br>} <br>} <br>); <br>}) <br>.bind("createleaf.jstree", function (e, data) { <br>if(data.rslt.parent.attr("id")); <br>$.post( <br>"@{Application.addNode()}", <br>{ <br>"작업" : "create_node", <br>"parentID" : data.rslt.parent.attr("id"), <br>"name" : data.rslt.name, <br>"isleaf" : 1 <br>}, <br>function (r) { <br>if(r.status) { <br>data.inst. 새로 고침(); <br>} <br>else { <br>$.jstree.rollback(data.rlbk) <br>alert("叶子节点不能再有子节点!"); <br>} <br>} <br>); <br>}) <br>.bind("move_node.jstree", 함수(e, 데이터) { <br>data.rslt.o.each (함수 (i) { <br>$.ajax({ <br>async : false, <br>type: 'POST', <br>url: "@{Application.moveNode()}", <br>data : { <br>"작업" : "move_node", <br>"id" : this.id, <br>"parentID" : data.rslt.np.attr("id"), <br>"isadmin" : isadmin <br>}, <br>success : function (r) { <br>if(!r.status) { <br>data.inst.refresh() <br>} <br>else { <br>} <br>} <br>}); <br>}) <br>}) <br>.bind("rename.jstree", function (e, data) { <br>if (data.rslt .new_name == data.rslt.old_name){ <br>return ; <br>} <br>$.post( <br>"@{Application.editNode()}", <br>{ <br>"작업 " : "rename_node", <br>"id" : data.rslt.obj.attr("id"), <br>"name" : data.rslt.new_name <br>}, <br>함수(r) { <br>if(!r.status) { <br>data.inst.refresh(); <br>}else{ <br>} <br>} <br>) <br> .bind("remove.jstree", function (e, data) { <br>data.rslt.obj.each(function () { <br>$.ajax({ <br>async : false, <br>type : 'POST', <br>url: "@{Application.removeNode()}", <br>data : { <br>"작업" : "remove_node", <br>"id" : this.id <br>}, <br>성공 : 함수 (r) { <br>if(!r.status) { <br>data.inst.refresh(); <br>} <br>} <br>}); <br>}); <br>}); <br>}); <br>