发现一个radio选择时的bug
ztree吧
全部回复
仅看楼主
level 1
tongj741 楼主
在demo excheck/radio.html中,如果设置setting.check.radioType = "all";且己选择的节点的父节点未展开,此时选择其它节点时初始选择的节点未取消。
2013年03月04日 02点03分 1
level 1
tongj741 楼主
在demo excheck/radio.html中,如果设置setting.check.radioType = "all";且己选择的节点的父节点未展开,此时选择其它节点时初始选择的节点未取消。
2013年03月04日 02点03分 2
level 1
tongj741 楼主
源码:
<!DOCTYPE html><HTML><HEAD><TITLE> ZTREE DEMO - radio</TITLE><meta http-equiv="content-type" content="text/html; charset=UTF-8"><link rel="stylesheet" href="../../../css/demo.css" type="text/css"><link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type="text/css"><script type="text/javascript" src="../../../js/jquery-1.4.4.min.js"></script><script type="text/javascript" src="../../../js/jquery.ztree.core-3.5.js"></script><script type="text/javascript" src="../../../js/jquery.ztree.excheck-3.5.js"></script><!--<script type="text/javascript" src="../../../js/jquery.ztree.exedit-3.5.js"></script>--><SCRIPT type="text/javascript"><!--var setting = {check: {enable: true,chkStyle: "radio",radioType: "all"},data: {simpleData: {enable: true}}};
var zNodes =[{ id:1, pId:0, name:"随意勾选 1", open:true},{ id:11, pId:1, name:"随意勾选 1-1", open:true},{ id:111, pId:11, name:"随意勾选 1-1-1"},{ id:112, pId:11, name:"随意勾选 1-1-2"},{ id:12, pId:1, name:"随意勾选 1-2", open:true},{ id:121, pId:12, name:"随意勾选 1-2-1"},{ id:122, pId:12, name:"随意勾选 1-2-2"},{ id:2, pId:0, name:"随意勾选 2", open:true},{ id:21, pId:2, name:"随意勾选 2-1"},{ id:22, pId:2, name:"随意勾选 2-2", open:false},{ id:221, pId:22, name:"随意勾选 2-2-1", checked:true},{ id:222, pId:22, name:"随意勾选 2-2-2"},{ id:23, pId:2, name:"随意勾选 2-3"}];var code;function setCheck() {var type = $("#level").attr("checked")? "level":"all";setting.check.radioType = type;showCode('setting.check.radioType = "' + type + '";');$.fn.zTree.init($("#treeDemo"), setting, zNodes);}function showCode(str) {if (!code) code = $("#code");code.empty();code.append("<li>"+str+"</li>");}$(document).ready(function(){setCheck();$("#level").bind("change", setCheck);$("#all").bind("change", setCheck);});//--></SCRIPT></HEAD>
<BODY><h1>Radio 勾选操作</h1><h6>[ 文件路径: excheck/radio.html ]</h6><div class="content_wrap"><div class="zTreeDemoBackground left"><ul id="treeDemo" class="ztree"></ul></div><div class="right"><ul class="info"><li class="title"><h2>1、setting 配置信息说明</h2><ul class="list"><li class="highlight_red">使用 radio,必须设置 setting.check 中的各个属性,详细请参见 API 文档中的相关内容</li><li><p>radio 分组范围:<input type="radio" id="level" class="radio first" name="radioGroup" /><span>同一级内</span><input type="radio" id="all" class="radio" name="radioGroup" checked /><span>整棵树内</span><br/><ul id="code" class="log" style="height:20px;"></ul></p></li></ul></li><li class="title"><h2>2、treeNode 节点数据说明</h2><ul class="list"><li class="highlight_red">1)、如果需要初始化默认节点被勾选,请设置 treeNode.checked 属性,详细请参见 API 文档中的相关内容</li><li class="highlight_red">2)、如果某节点不显示 radio,请设置 treeNode.nocheck 属性,详细请参见 API 文档中的相关内容</li><li class="highlight_red">3)、如果更换 checked 属性,请参考 API 文档中 setting.data.key.checked 的详细说明</li><li>4)、其他请参考 API 文档中 treeNode.checkedOld / getCheckStatus / check_Child_State / check_Focus 的详细说明</li></ul></li></ul></div></div></BODY></HTML>
2013年03月04日 02点03分 3
level 11
是这样的, Demo 的初始化数据会同时选择多个,为了针对 同一级内做演示。
因为 zTree 在初始化节点时,是不会对 checkbox 和 radio 做特殊处理的,原始数据是什么样,就显示成什么样。 主要是为了保持与初始化数据完全一致。
如果你确定使用 all 方式,那么初始化的数据也不应该是同时有多个被选中的。 要注意 checked 属性的值
2013年03月05日 05点03分 4
补充一下,对于这个demo 修改了 all 后,别忘了修改默认 radio 的checked
2013年03月05日 06点03分
谢谢回复!不过我再次检查了一下初始化的数据,确实只有一个选中项。 请注意,问题只出现在初始选中节点的父节点未展示的时候。
2013年03月12日 06点03分
level 1
tongj741 楼主
2013年03月12日 06点03分 5
level 1
tongj741 楼主
2013年03月12日 06点03分 6
level 11
[怒] 好吧,我承认——我被你的坚持不懈打败了!!! 逼着我要发布 v3.5.13 呀!!等我修改后,会先发布到 github 上,供你测试!
2013年03月12日 07点03分 7
level 11
最新消息—— 搞定了,去 http://plugins.jquery.com/zTree.v3/ 下载最新代码吧
2013年03月12日 08点03分 8
1