layuiExtend
layuiExtend copied to clipboard
调用unCheckNodes()取消选中之后,再调用setChecked(arr),这有时候选中会变成两次的叠加
el.setChecked(arr1);
el.unCheckNodes();
el.setChecked(arr2);
简化之后就是这个意思,最后选中的节点变成了arr1+arr2的节点总和。
还有为了异步加载子节点之后选中子节点, , load: function (oldNode, callback) { $.ajax({ url: "/UserManager/GetDeptTree?pid=" + oldNode.id, type: 'get', success: function (result) { var newNode = result.data; setTimeout(function () { callback(newNode); el.setChecked(($("#deptIds").val() || "").split(",")); }, 100); } }); 加了一个setChecked方法,结果选中的新节点,在展开子节点,也就是load方法的时候就变成未选中了 稍微看了一下源码,主要就是config里面的defaultCheckedKeys导致的。后端不太懂前端的东西,麻烦有空看看是不是有bug
setChecked方法有两个参数,可以把第二个参数设置为true,
el.setChecked(arr,isReset) //设置选中的节点,传入数组key值,isReset:是否重新设置选中项,默认false,若为false,则在原有的选中基础上增加选中项
setChecked方法有两个参数,可以把第二个参数设置为true,
el.setChecked(arr,isReset) //设置选中的节点,传入数组key值,isReset:是否重新设置选中项,默认false,若为false,则在原有的选中基础上增加选中项 我该用true了,然后自己保存页面上需要选中的节点,用选中事件更新,每次覆盖选中解决了