easyui tree 单选怎么实现

heerxiong 2014-04-23 04:32:37
easyui tree 单选怎么实现(叶子节点有框),就是复选框只能勾选一项,勾选另一项时,之前勾选的那项取消
...全文
1404 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuliSugar 2016-08-11
  • 打赏
  • 举报
回复
onBeforeCheck:function(node, checked){ var checkedNode=$("#tree").tree("getChecked"); if(checkedNode.length>0){ var childrens=checkedNode[0].target.children; for(var i=0;i<childrens.length;i++){ if(childrens[i].className=="tree-checkbox tree-checkbox1"){ childrens[i].className="tree-checkbox tree-checkbox0"; } } } }
四五空心 2015-07-15
  • 打赏
  • 举报
回复
onCheck: function (node, checked) { if (checked) { var nodes = $('#' + controlid).tree('getChecked'); if (nodes.length > 1) { for (var i = 0; i < nodes.length; i++) { $("#" + controlid).tree('uncheck', nodes[i].target) } $("#" + controlid).tree('check', node.target); } } },
四五空心 2015-07-15
  • 打赏
  • 举报
回复
引用 13 楼 siwukongxin 的回复:
[quote=引用 10 楼 marjay 的回复:] [quote=引用 3 楼 binbin001133 的回复:] [quote=引用 1 楼 xxj1071290157 的回复:] onLoadSuccess:function(node, data){ $('.tree-checkbox').unbind('click'); }, onSelect : function(node){ var cknodes = $(this).tree("getChecked"); for(var i = 0 ; i < cknodes.length ; i++){ $(this).tree("uncheck", cknodes[i].target); } //再选中改节点 $(this).tree("check", node.target); } 先去掉复选框的click事件,再去用onSelect控制
这样做的结果是,必须双击节点才能选择,假如有复选框的话,不符合用户习惯[/quote] 不会啊 我用起来单击就可以选择了[/quote][/quote] 我也是双击才能用
四五空心 2015-07-15
  • 打赏
  • 举报
回复
引用 10 楼 marjay 的回复:
[quote=引用 3 楼 binbin001133 的回复:] [quote=引用 1 楼 xxj1071290157 的回复:] onLoadSuccess:function(node, data){ $('.tree-checkbox').unbind('click'); }, onSelect : function(node){ var cknodes = $(this).tree("getChecked"); for(var i = 0 ; i < cknodes.length ; i++){ $(this).tree("uncheck", cknodes[i].target); } //再选中改节点 $(this).tree("check", node.target); } 先去掉复选框的click事件,再去用onSelect控制
这样做的结果是,必须双击节点才能选择,假如有复选框的话,不符合用户习惯[/quote] 不会啊 我用起来单击就可以选择了[/quote]
LaGuanLianLaHuan 2014-08-27
  • 打赏
  • 举报
回复
楼主,我也遇到这种问题,按照那种方法操作后,双击才能选择,请问是哪儿的原因。
gap12521 2014-08-18
  • 打赏
  • 举报
回复
引用 10 楼 marjay 的回复:
[quote=引用 3 楼 binbin001133 的回复:] [quote=引用 1 楼 xxj1071290157 的回复:] onLoadSuccess:function(node, data){ $('.tree-checkbox').unbind('click'); }, onSelect : function(node){ var cknodes = $(this).tree("getChecked"); for(var i = 0 ; i < cknodes.length ; i++){ $(this).tree("uncheck", cknodes[i].target); } //再选中改节点 $(this).tree("check", node.target); } 先去掉复选框的click事件,再去用onSelect控制
这样做的结果是,必须双击节点才能选择,假如有复选框的话,不符合用户习惯[/quote] 不会啊 我用起来单击就可以选择了[/quote] 点赞,确实可以用!
marjay 2014-08-08
  • 打赏
  • 举报
回复
引用 3 楼 binbin001133 的回复:
[quote=引用 1 楼 xxj1071290157 的回复:] onLoadSuccess:function(node, data){ $('.tree-checkbox').unbind('click'); }, onSelect : function(node){ var cknodes = $(this).tree("getChecked"); for(var i = 0 ; i < cknodes.length ; i++){ $(this).tree("uncheck", cknodes[i].target); } //再选中改节点 $(this).tree("check", node.target); } 先去掉复选框的click事件,再去用onSelect控制
这样做的结果是,必须双击节点才能选择,假如有复选框的话,不符合用户习惯[/quote] 不会啊 我用起来单击就可以选择了
roffer 2014-07-21
  • 打赏
  • 举报
回复
引用 8 楼 binbin001133 的回复:
[quote=引用 6 楼 dulongfie 的回复:] [quote=引用 5 楼 binbin001133 的回复:] [quote=引用 4 楼 dulongfie 的回复:]

onBeforeCheck:function(node, checked){
       var _this = $(this);
       _this.tree('getChecked').each(function(i,k){
               _this.tree('uncheck',k.target);
       })
}
//以上纯属现从API参考而写的答案.看了下api,还有个onCheck方法,如果不行,换成它吧,但要增加一行代码,就是楼上的再选中节点的代码
//api地址:http://www.jeasyui.com/documentation/tree.php
你的这个方法是行不通的,附图如下 这个问题不好解决的地方,就是tree的uncheck方法,会调用OnCheck和OnBeforeCheck方法,这样就会一直反反复复地调用,伤脑筋。。。[/quote] each是jquery的迭代器,没有jquery 的支持,就找不到each方法,\ 难道你没引入jquery?[/quote] 这样可以证实我加载jquery了吧。。。 [/quote] $($(this).tree("getChecked")).each(function(){....}) 这样呢?
冰凝火龙吟 2014-07-18
  • 打赏
  • 举报
回复
引用 6 楼 dulongfie 的回复:
[quote=引用 5 楼 binbin001133 的回复:]
[quote=引用 4 楼 dulongfie 的回复:]

onBeforeCheck:function(node, checked){
var _this = $(this);
_this.tree('getChecked').each(function(i,k){
_this.tree('uncheck',k.target);
})
}
//以上纯属现从API参考而写的答案.看了下api,还有个onCheck方法,如果不行,换成它吧,但要增加一行代码,就是楼上的再选中节点的代码
//api地址:http://www.jeasyui.com/documentation/tree.php



你的这个方法是行不通的,附图如下


这个问题不好解决的地方,就是tree的uncheck方法,会调用OnCheck和OnBeforeCheck方法,这样就会一直反反复复地调用,伤脑筋。。。[/quote]

each是jquery的迭代器,没有jquery
的支持,就找不到each方法,\
难道你没引入jquery?[/quote]

这样可以证实我加载jquery了吧。。。
haopengyouyi 2014-07-18
  • 打赏
  • 举报
回复
很好,学习了。
roffer 2014-07-18
  • 打赏
  • 举报
回复
引用 5 楼 binbin001133 的回复:
[quote=引用 4 楼 dulongfie 的回复:]

onBeforeCheck:function(node, checked){
       var _this = $(this);
       _this.tree('getChecked').each(function(i,k){
               _this.tree('uncheck',k.target);
       })
}
//以上纯属现从API参考而写的答案.看了下api,还有个onCheck方法,如果不行,换成它吧,但要增加一行代码,就是楼上的再选中节点的代码
//api地址:http://www.jeasyui.com/documentation/tree.php
你的这个方法是行不通的,附图如下 这个问题不好解决的地方,就是tree的uncheck方法,会调用OnCheck和OnBeforeCheck方法,这样就会一直反反复复地调用,伤脑筋。。。[/quote] each是jquery的迭代器,没有jquery 的支持,就找不到each方法,\ 难道你没引入jquery?
冰凝火龙吟 2014-07-18
  • 打赏
  • 举报
回复
引用 4 楼 dulongfie 的回复:

onBeforeCheck:function(node, checked){
var _this = $(this);
_this.tree('getChecked').each(function(i,k){
_this.tree('uncheck',k.target);
})
}
//以上纯属现从API参考而写的答案.看了下api,还有个onCheck方法,如果不行,换成它吧,但要增加一行代码,就是楼上的再选中节点的代码
//api地址:http://www.jeasyui.com/documentation/tree.php



你的这个方法是行不通的,附图如下


这个问题不好解决的地方,就是tree的uncheck方法,会调用OnCheck和OnBeforeCheck方法,这样就会一直反反复复地调用,伤脑筋。。。
roffer 2014-07-18
  • 打赏
  • 举报
回复

onBeforeCheck:function(node, checked){
       var _this = $(this);
       _this.tree('getChecked').each(function(i,k){
               _this.tree('uncheck',k.target);
       })
}
//以上纯属现从API参考而写的答案.看了下api,还有个onCheck方法,如果不行,换成它吧,但要增加一行代码,就是楼上的再选中节点的代码
//api地址:http://www.jeasyui.com/documentation/tree.php
冰凝火龙吟 2014-07-18
  • 打赏
  • 举报
回复
引用 1 楼 xxj1071290157 的回复:
onLoadSuccess:function(node, data){ $('.tree-checkbox').unbind('click'); }, onSelect : function(node){ var cknodes = $(this).tree("getChecked"); for(var i = 0 ; i < cknodes.length ; i++){ $(this).tree("uncheck", cknodes[i].target); } //再选中改节点 $(this).tree("check", node.target); } 先去掉复选框的click事件,再去用onSelect控制
这样做的结果是,必须双击节点才能选择,假如有复选框的话,不符合用户习惯
scscms太阳光 2014-04-25
  • 打赏
  • 举报
回复
呵呵,同时最好换了背景图片。
xxj1071290157 2014-04-25
  • 打赏
  • 举报
回复
onLoadSuccess:function(node, data){ $('.tree-checkbox').unbind('click'); }, onSelect : function(node){ var cknodes = $(this).tree("getChecked"); for(var i = 0 ; i < cknodes.length ; i++){ $(this).tree("uncheck", cknodes[i].target); } //再选中改节点 $(this).tree("check", node.target); } 先去掉复选框的click事件,再去用onSelect控制

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧