fayeelse

首先,在三级菜单中加入draggable,表示是否开启拖拽节点功能。

之后,加入allow-drop,表示拖拽时判定目标节点能否被放置。该方法有三个参数draggingNode(当前节点), dropNode(放到哪个节点), type(放到哪个节点的哪个位置),type参数有三种情况:\'prev\'、\'inner\' 和 \'next\',分别表示放置在目标节点前、插入至目标节点和放置在目标节点后。

 

编写allowDrop方法。

其中countNodeLevel方法是一个递归的方法,目的是为了计算出最深的子节点的深度。首先默认maxLevel为0,之后进行遍历,如果子节点的catLevel大于maxLevel,则把carLevel的值赋给maxLevel,之后把子节点当成参数进行递归。最终得到的便是最深子节点的深度maxLevel,可以理解为maxLevel相当于最深子节点的catLevel。

 

 

 得到maxLevel之后,计算当前节点的层数,用maxLevel-当前节点的catLevel+1便可以得到。

最后进行判断,如果是拖拽到某一节点里,那么判定条件为当前节点层数+放到的某个节点的level需要小于等于3。如果是拖拽到某一结点的前后,则需要用当前节点层数+放到的某个节点的父节点的level需要小于等于3。

 

分类:

技术点:

相关文章:

  • 2021-08-30
  • 2021-10-17
  • 2021-09-16
  • 2021-10-05
  • 2021-10-07
  • 2021-11-23
  • 2021-11-16
  • 2021-10-05
猜你喜欢
  • 2021-11-13
  • 2021-09-26
  • 2021-12-28
  • 2021-04-17
  • 2021-10-17
  • 2021-11-17
  • 2021-07-04
相关资源
相似解决方案