ztree添加節點和修改節點自動更新當前節點在ztree中的顯示順序


1、新增和修改的時候先將parentNode獲取到,定義全局變量

var parentNode = null;

復制代碼
//加入添加資源按鈕 function addHoverDom(treeId, treeNode) { var obj = $('#' + treeNode.tId + '_span'); if ($('#add_' + treeNode.tId).length > 0) { return; } var menu = '<span id="add_'+treeNode.tId+'" class="button add" title="添加子資源"></span>'; obj.after(menu); var btn = $('#add_' + treeNode.tId); if (btn) btn.bind('click', function() { parentNode = treeNode; var tId = treeNode.tId; var parentcode = treeNode.codee; var code = getLastCode(treeNode); //alert(treeNode.id); $('#iframe').attr( 'src', '${_baseUrl}/add.do?nodeId=' + tId + '&parentcode=' + parentcode + '&code=' + code); return false; }); };
復制代碼

 

復制代碼
//點擊編輯按鈕進入編輯 function beforeEditName(treeId, treeNode) { status = 'edit'; parentNode = treeNode.getParentNode(); $('#iframe') .attr('src', '${_baseUrl}/edit.do?resId=' + treeNode.id); return false; }
復制代碼

當新增或者修改結束的時候,將當前節點的順序返回:

復制代碼
 $("#addForm")
                .ajaxSubmit(
                        {
                            type: "post", url: '${_baseUrl}/save.do', dataType: 'json', success: function (res) { window.parent.addChildNode(res,$("#order").val());//在父窗口中添加節點到指定順序處 window.location.href = '${_baseUrl}/detail.do?resId=' + res.id; }, error: function (res) { } }); $("#editForm") .ajaxSubmit( { type: "post", url: '${_baseUrl}/update.do', dataType: 'json', success: function (res) { window.parent.updateNode(res,$("#order").val());//在父窗口中更新順序 window.location.href = '${_baseUrl}/detail.do?resId=' + res.id; }, error: function (res) { } });
復制代碼

在ztree新增和修改節點之前先獲取當前順序在父節點的所有子節點中占的順序:

復制代碼
//獲取子節點的最大code function getIndexOfChildNode(order) { var childNodes = parentNode.children; var index = 0; if (childNodes) { var lastCode = 0;//childNodes[childNodes.length - 1].codee; childNodes.forEach(function(n) { n = parseInt(n.order); index = n < order ? ++index : index; }); } return index; }
復制代碼

調用ztree自身的添加節點的方法 zTree.addNodes(parentNode, index, node);將節點添加到指定順序下

復制代碼
//在資源樹中添加資源 function addChildNode(node,order) { var zTree = $.fn.zTree.getZTreeObj('zTree'); var index = getIndexOfChildNode(order); zTree.addNodes(parentNode, index, node); }
復制代碼

對於修改的節點信息,可以先刪除后添加:

復制代碼
//更新資源樹中的資源 function updateNode(res,order) { var zTree = $.fn.zTree.getZTreeObj('zTree'); var node = zTree.getNodeByParam("id", res.id, null); zTree.removeNode(node); var index = getIndexOfChildNode(order); zTree.addNodes(parentNode, index, res); }
復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM