Open easythd opened 1 month ago
因为默认的增加兄弟节点函数addSiblings固定把新节点增加到指定节点的左边,而在项目使用过程中,我需要用到指定增加到右边,找了一圈issues,发现也有人有类似需求但一直没有解决这个问题,所以通过跟踪尝试,调整了一下源码,给addSiblings函数加了个指定增加到右边的参数,调整了2个函数,addSiblings和buildSiblingNode,这两个函数在源代码里本身是就是紧挨在一起的,调整如下,有用的请参考。
` 修改的jquery.orgchart.js文件
// build the sibling nodes of specific node buildSiblingNode: function ($nodeChart, data, isRight=false) { ..............原来的代码不变................... if ($nodeChart.closest('.nodes').parent().is('.hierarchy')) { ..............原来的代码不变.................. } else { // build the sibling nodes and parent node for the specific ndoe if (isRight) { //如果传入了isRight参数并且为true,则将新兄弟节点插入到指定节点的后面,否则默认插入到前面 this.buildHierarchy($nodeChart.parent().append($('<li class="hierarchy">')).children('.hierarchy:last'), data); } else { this.buildHierarchy($nodeChart.parent().prepend($('<li class="hierarchy">')).children('.hierarchy:first'), data); } $nodeChart.prevAll('.hierarchy').children('.nodes').children().eq(insertPostion).after($nodeChart); } }, // addSiblings: function ($node, data, isRight=false) { this.buildSiblingNode($node.closest('.hierarchy'), data, isRight); ..............原来的代码不变...................
`
@dabeng 因为不知道是否还有别的什么地方涉及这个需求,我也没改别的,改的上述这点已经够我的项目中需求用了。如果合适,希望可以加入下一发布版本。谢谢
因为默认的增加兄弟节点函数addSiblings固定把新节点增加到指定节点的左边,而在项目使用过程中,我需要用到指定增加到右边,找了一圈issues,发现也有人有类似需求但一直没有解决这个问题,所以通过跟踪尝试,调整了一下源码,给addSiblings函数加了个指定增加到右边的参数,调整了2个函数,addSiblings和buildSiblingNode,这两个函数在源代码里本身是就是紧挨在一起的,调整如下,有用的请参考。
` 修改的jquery.orgchart.js文件
`
@dabeng 因为不知道是否还有别的什么地方涉及这个需求,我也没改别的,改的上述这点已经够我的项目中需求用了。如果合适,希望可以加入下一发布版本。谢谢