easyui的tree的checkbox单选或

首先要知道easyui的tree的checkbox并不是input的checkbox,而是span标签

接下来进入正题:

1、easyui的checkbox默认是多选的,而且父节点选择的话,子节点必然是全选的,子节点全选的话父节点也必然选中

2、如果想实现单选,下面是我的代码:

    <ul id="role-tree" class="easyui-tree" data-options="checkbox:true,iconCls:'icon-ok'"></ul> 

    <script type="text/javascript">

    $('#role-tree').tree({
       cascadeCheck: false,
       onSelect: function (node) {
       var cknodes = $('#role-tree').tree("getChecked");
       for (var i = 0; i < cknodes.length; i++) {
           if (cknodes[i].id != node.id) {
               $('#role-tree').tree("uncheck", cknodes[i].target);
           }
       }
       if (node.checked) {
           $('#role-tree').tree('uncheck', node.target);
       } else {
           $('#role-tree').tree('check', node.target);
       }
      },
      onLoadSuccess: function (node, data) {
          $(this).find('span.tree-checkbox').unbind().click(function () {
              $('#role-tree').tree('select', $(this).parent());
              return false;
          });
      }
    })
   </script>

写的比较乱,将就着看吧

3、如果想实现多选,并且子节点和父节点之间不再相互影响,即选择父节点的情况下子节点可以没选货没有全选

     下面是代码:

      <ul id="role-tree" class="easyui-tree" data-options="checkbox:true,iconCls:'icon-ok'"></ul>

    <script type="text/javascript">

             //让tree的checkbox不再点击父节点后同时勾选子节点
      $('#role-tree').tree({
          cascadeCheck: false,
    })
   </script>

只要设置cascadeCheck: false就行了

4、在选择了父节点的情况下不选择子节点,而在选择了一个或多个子节点的情况下必选父节点,代码如下:

   <ul id="role-tree" class="easyui-tree" data-options="checkbox:true,iconCls:'icon-ok'"></ul>

  <script type="text/javascript">

   //让tree的checkbox不再点击父节点后同时勾选子节点
  $('#role-tree').tree({
       cascadeCheck: false,
       onSelect: function (node) {
       var  node1=$('#role-tree').tree('getParent',node.target);
   $('#role-tree').tree('check', node1.target);
      },  
      onLoadSuccess: function (node, data) {    
          $(this).find('span.tree-checkbox').unbind().click(function () {
              $('#role-tree').tree('select', $(this).parent());
              return true;
          });        
      }
    })

   </script>

这一步有个bug,就是选了子节点后,只能选择上一级的父节点,大家可以先看看选择多级父节点的实现方式,我以后再实现这个功能


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值