layuiExtend icon indicating copy to clipboard operation
layuiExtend copied to clipboard

调用unCheckNodes()取消选中之后,再调用setChecked(arr),这有时候选中会变成两次的叠加

Open 925934787 opened this issue 5 years ago • 2 comments

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

925934787 avatar Mar 20 '20 08:03 925934787

setChecked方法有两个参数,可以把第二个参数设置为true,

el.setChecked(arr,isReset) //设置选中的节点,传入数组key值,isReset:是否重新设置选中项,默认false,若为false,则在原有的选中基础上增加选中项

hsiangleev avatar Mar 21 '20 07:03 hsiangleev

setChecked方法有两个参数,可以把第二个参数设置为true,

el.setChecked(arr,isReset) //设置选中的节点,传入数组key值,isReset:是否重新设置选中项,默认false,若为false,则在原有的选中基础上增加选中项 我该用true了,然后自己保存页面上需要选中的节点,用选中事件更新,每次覆盖选中解决了

925934787 avatar Mar 21 '20 07:03 925934787