求教如何不按ctrl键也实现类多选功能(就是使选中的样式共存)
ztree吧
全部回复
仅看楼主
level 13
李坤銳 楼主
如题.
有个恶心需求,每个条目前有一个checkbox,要求点击任意checkbox,让其对应的条目被选中.
这个容易,已经实现了,通过onCheck事件轻松做到.
第2个要求,当点击任意条目的时候,其前方的checkbox被选中,这个也实现了.
只是,不按ctrl选择条目的话,之前所有被选中的条目样式都被清除了,之后最后一次点击的才有那个背景色.已经在treeNode的onClick事件中尝试用过selectNode(treeNode,true),无效[泪]
请问:如何在不按ctrl键的情况下,给当前选择的条目加上样式而不会将其他已经选中的条目样式清空?
望高手指教,非常感谢.
2013年03月04日 06点03分 1
level 13
李坤銳 楼主
再补充一点
在onClick事件中用循环的方式
var selectedNodes = categoriesTree.getSelectedNodes();
for (var i = 0; i < selectedNodes.length; i ++) {
categoriesTree.selectNode(selectedNodes[i], tree);
}
也无效,当前的树是允许多选的.
2013年03月04日 06点03分 2
写错了个单词,是categoriesTree.selectNode(selectedNodes[i], true);
2013年03月04日 06点03分
level 11
你的需求可以很容易实现,即利用 beforeClick 这个回调,return false; 同时 利用 setTimeout 在异步操作中 利用selectNode 方法添加当前节点的选中状态。
beforeClick = function(treeId, treeNode) {
zTree.selectNode(treeNode, true);
return false;
}
但是你这种需求有个问题:什么时候点击才能取消选中状态呢??
例如:如果beforeClick 触发的时候判断当前节点是否已经被选中(利用 getSelectedNodes 方法),如果是则取消选中; 如果不是则用上面的方法让其追加选中...
2013年03月05日 06点03分 3
非常感谢,会在尝试后再回复您的.[$1]点击取消可以用categoriesTree.isSelectedNode(treeNode)来判断当前节点是不是被选中了.
2013年03月06日 10点03分
可以查当前节点前的checkbox是否被勾选了,如果是,那就取消掉,否则就追加
2013年03月06日 10点03分
回复 stanleyey : 搞定就好!
2013年03月06日 14点03分
1