每次插入节点需明确被插入的 父节点 以及被插入的 位置 (左右)
第1步中,需将A存储,因为A在第2,3步中被取出,作为插入 *** 作的父节点
第2步中,需将B存储,因为B在第4,5步中被取出,作为插入 *** 作的父节点
第3步中,需将C存储,因为C在第6步中被取出,作为插入 *** 作的父节点,与此同时,A在被执行右下方的插入 *** 作后,A不能再被插入子节点
...
第5步中,需将E存储,其在后续的 *** 作中会被取出,作为插入 *** 作的父节点,与此同时,B与A一样,在被执行右下方的插入 *** 作后,B不能再被插入子节点
故 建个队列 ,将后续 *** 作中会被取出的节点存储,不会再被取出的节点移除。每次插入的新节点都会入列。同时,若新节点被插入到父节点的右下方,则该父节点出列。
被插入的位置可以通过插入的次数来判断,若是第1次插入,则是根节点,若是第n(n>1)次插入,n为偶,则插入左边,n为奇,则插入右边
故用个变量 存储插入的次数
运行环境node v8.4
首先需要判断插入的节点是否为空节点
若是空节点,其不会作为父节点被执行插入 *** 作,故不用入列
然后根据鼠标左键在菜单坐标内按下放开的事件提取当前鼠标的x,y坐标,然后修改属性菜单的top和left属性 或者当鼠标在菜单坐标内按下之后触发鼠标的移动事件,然后在移动事件里设置菜单的top和left对应鼠标当前坐标y和x,这样当鼠标移动时菜单的坐标也会根本改变,实现同步移动1、手动的改成树形结构,在二级opint标签的内容前面加入空格,形成树形的样子。2、用div等标签做成模拟的select下拉框。
目前除此之外应该没有其它的办法能做到。
不要找我要代码,自己试试。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)