后台代码添加children属性:
?
response.setHeader("Cache-Control", "no-cache"); response.setContentType("text/json;charset=UTF-8"); try { request.setCharacterEncoding("utf-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } String id = request.getParameter("root"); String root = request.getParameter("spacename"); String output = ""; if(id==null){ return; }else if("source".equals(id)){ output = generateInitTreeString(root); }else{ output = generateTreeChildNodeString(id); } response.getWriter().println(output); } private String generateInitTreeString(String root){ StringBuilder jsonString = new StringBuilder(); jsonString.append("["); TreeDao dao = new TreeDao(); List<Category> categorys = dao.getRoot(root); int i = 0; for(Category category : categorys){ if(i > 1){ jsonString.append(","); } jsonString.append(toJSONString(category)); i++; } jsonString.append("]}"); jsonString.append("]"); return jsonString.toString(); } private String toJSONString(Category category){ StringBuilder sb = new StringBuilder(); sb.append("{"); sb.append("\"id\":\""+category.getCatId()+"\""); sb.append(",\"text\":\""+generateLinkString(category)+"\""); sb.append(",\"classes\":\""+category.getCssClass()+"\""); if(category.isRoot()){ sb.append(",\"expanded\":true"); }else{ sb.append(",\"expanded\":false"); } sb.append(",\"hasChildren\":"+category.hasChild()); if(!"".equals(category.getImageName())){ sb.append(",\"imagepath\":\"url("+category.getImageName()+")\""); } if(category.isRoot()){ sb.append(",\"children\":["); }else{ sb.append("}"); } return sb.toString(); } private String generateLinkString(Category category){ String link = "<a href='"+category.getHrefAddress()+"' target='mainarea'>"+category.getCatTitle()+"</a>"; return link; }
?
去掉根节点下placeholder节点: ? ?jquery.treeview.async.js ? ? 35行
?
?
var branch = $("<ul/>").appendTo(current); if(!this.isroot){ //在后台添加isroot属性,根节点不需要执行下面的代码,否则重复点击不加载数据, if (this.hasChildren) { current.addClass("hasChildren"); createNode.call({ text:"placeholder", id:"placeholder", children:[] }, branch); } }? ?
?
?