ztree吧 关注:1,830贴子:12,477
  • 11回复贴,共1

发现一个radio选择时的bug

只看楼主收藏回复

在demo excheck/radio.html中,如果设置setting.check.radioType = "all";且己选择的节点的父节点未展开,此时选择其它节点时初始选择的节点未取消。


IP属地:广东1楼2013-03-04 10:43回复
    在demo excheck/radio.html中,如果设置setting.check.radioType = "all";且己选择的节点的父节点未展开,此时选择其它节点时初始选择的节点未取消。


    IP属地:广东2楼2013-03-04 10:45
    回复
      2025-08-09 21:30:04
      广告
      不感兴趣
      开通SVIP免广告
      源码:
      <!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>
      <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>


      IP属地:广东3楼2013-03-04 10:45
      回复
        是这样的, Demo 的初始化数据会同时选择多个,为了针对 同一级内做演示。
        因为 zTree 在初始化节点时,是不会对 checkbox 和 radio 做特殊处理的,原始数据是什么样,就显示成什么样。 主要是为了保持与初始化数据完全一致。
        如果你确定使用 all 方式,那么初始化的数据也不应该是同时有多个被选中的。 要注意 checked 属性的值


        IP属地:北京4楼2013-03-05 13:57
        收起回复


          IP属地:广东5楼2013-03-12 14:10
          回复
            IP属地:广东6楼2013-03-12 14:35
            回复
              好吧,我承认——我被你的坚持不懈打败了!!! 逼着我要发布 v3.5.13 呀!!等我修改后,会先发布到 github 上,供你测试!


              IP属地:北京7楼2013-03-12 15:04
              回复
                最新消息—— 搞定了,去 http://plugins.jquery.com/zTree.v3/ 下载最新代码吧


                IP属地:北京8楼2013-03-12 16:20
                回复