layui如何获取父节点的父节点_layui树形组件(右键、父节点选中子节点全被选中)...

一:右键菜单:

layui里面没有给到右键菜单,所以,我自己把源码改了一下:

找到layui文件夹里modules下的tree.js

用以上代码,替换以下代码

当i.which等于3,是右键事件,等于1是左键。

所以,左键响应的事件,还是可以在tree的属性设置的时候的click属性里写自己的左键事件,如

tree.render({

elem: '#test1'

,click: function(obj){

console.log(obj.data); //得到当前点击的节点数据

console.log(obj.state); //得到当前节点的展开状态:open、close、normal

console.log(obj.elem); //得到当前节点元素

console.log(obj.data.children); //当前节点下是否有子节点

}

});

右键就在上面选中代码里if分支,i.swich=3的地方搞事情,菜单的话,就是自己写个菜单,然后根据鼠标点击位置显示和隐藏就好了。

二、父节点选中子节点全被选中

一个树形组件,比如到权限管理的时候,回显的时候,父节点被设置为选中,所有改节点的子节点都被设置为选中,但我们需要的可能是这样的回显:

1、所以,要么,只获取所有已经拥有的权限的最末端的id,然后用

tree.setChecked('demoId', 1); //单个勾选 id 为 1 的节点

tree.setChecked('demoId', [2, 3]); //批量勾选 id 为 2、3 的节点

去设置,这样,当子节点被一个选中,改节点的父节点也会被设置为选中,就可以得到需要的样子。

2、不然,就要把数据按照需要的样子做好,再重载实例

tree.reload('demoId', {

//新的参数

data:newdata;

});

数据怎么做呢?就是把你需要选中的所有最末端的权限的Checked值赋true,记得用boolean,不要用字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值