zTree 簡介
zTree 是一個依靠 jQuery 實現的多功能 “樹插件”。優異的性能、靈活的配置、多種功能的組合是 zTree 最大優點。
zTree 是開源免費的軟件(MIT 許可證)。如果您對 zTree 感興趣或者愿意資助 zTree 繼續發展下去,可以進行捐助。
zTree v3.0 將核心代碼按照功能進行了分割,不需要的代碼可以不用加載 采用了 延遲加載 技術,上萬節點輕松加載,即使在 IE6 下也能基本做到秒殺 兼容 IE、FireFox、Chrome、Opera、Safari 等瀏覽器 支持 JSON 數據 支持靜態 和 Ajax 異步加載節點數據 支持任意更換皮膚 / 自定義圖標(依靠css) 支持極其靈活的 checkbox 或 radio 選擇功能 提供多種事件響應回調 靈活的編輯(增/刪/改/查)功能,可隨意拖拽節點,還可以多節點拖拽喲 在一個頁面內可同時生成多個 Tree 實例 簡單的參數配置實現 靈活多變的功能原始問題
//添加結點, 產品和版本function addNode(event) { rMenu.css({ "visibility": "hidden" }); var treeNode = zTree.getSelectedNodes()[0]; var pid; var nodeName; var treelevel; if (!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) { //添加產品結點pid = 0; treeNode = null; treelevel = 1; } else if (treeNode) { //添加版本結點pid = treeNode.id; treelevel = 2; } $.post( "AddNode.action", { type: treelevel, id: pid }, function(nodeIdAndName) { var params = /([^/|]+)/|([^/|]+)/.exec(nodeIdAndName); if (!((!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) || treeNode.open)) { zTree.expandNode(treeNode, true); } treeNode = zTree.addNodes(treeNode, { id: params[1], pid: pid, isParent: "true", name: params[2], editable: "true", treelevel: treelevel }); });}原本直接添加子節點的時候,如果父節點沒有展開,會添加兩個一樣的子節點(第一次的時候);后來我對父節點是否展開進行了判斷,但是卻變成了如果父節點展開,會添加兩個一樣的子節點(第一次的時候),這個問題要怎么解決呢?
辦法一
將
if (!((!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) || treeNode.open)) { zTree.expandNode(treeNode, true); } treeNode = zTree.addNodes(treeNode, { id: params[1], pid: pid, isParent: "true", name: params[2], editable: "true", treelevel: treelevel });改成
if(!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) { treeNode = zTree.addNodes(treeNode, { id: params[1], pid: pid, isParent: "true", name: params[2], editable: "true", treelevel: treelevel }); } else if(treeNode.open) { if(treeNode.isParent) { zTree.reAsyncChildNodes(treeNode, "refresh"); } else { treeNode.isParent=true; zTree.reAsyncChildNodes(treeNode, "refresh"); } } else { zTree.expandNode(treeNode, true); treeNode = zTree.addNodes(treeNode, { id: params[1], pid: pid, isParent: "true", name: params[2], editable: "true", treelevel: treelevel }); }
新聞熱點
疑難解答
圖片精選