DWZ (JUI) 教程 tree 控件的选中事件

先简单说一下流程

第一步 当然是先定义好回调事件了

function checkCallback(json){
...........
...........
}

关键是回调函数返回的结构 {checked:布尔值, items:数组}

如果是选中事件 checked 为 true 否则为false

items 是个对象数组 [ {name:, value:, text: },{} ]   是返回是选中的节点,如果返回的checked 为false 就是反选事件 ,那么它的长度就会是0

name 就是节点名称  value 就是对应的值  text 就是节点对应的文本  对应 节点的 tname tvalue ,<a>text</a> 文本信息

tree控件自动是级联的,选中父节点,子节点也会选中,所以返回的的选中节点是个数组,当然如果是叶子节点,那么它的长度就是1

第二步 就是注册到dom元素上

<ul class="tree treeFolder treeCheck expand" oncheck="checkCallback">

这样就可以了 其实使用起来 也挺方便。

setTimeout(function(){
if($this.hasClass("treeCheck")){
//获取选中事件 就是注册到dom元素上的事件
var checkFn = eval($this.attr("oncheck"));
if(checkFn && $.isFunction(checkFn)) {
$("div.ckbox", $this).each(function(){
var ckbox = $(this);
ckbox.click(function(){
//返回是事件类型 是否为选中事件
var checked = $(ckbox).hasClass("checked");
var items = [];
if(checked){
//看一下源码结构 其实是获取到节点的li 元素
var tnode = $(ckbox).parent().parent();
//获取所有节点下才checkbox
var boxes = $("input", tnode);
if(boxes.size() > 1) {
//对应我说的 返回的结构
$(boxes).each(function(){
items[items.length] = {name:$(this).attr("name"), value:$(this).val(), text:$(this).attr("text")};
});
} else {
items = {name:boxes.attr("name"), value:boxes.val(), text:boxes.attr("text")};
}
}
//调用函数
checkFn({checked:checked, items:items});
});
});
}
}

DWZ (JUI) 教程 tree 控件的选中事件的更多相关文章

  1. duilib进阶教程 -- Container控件的bug (14)

    在<duilib进阶教程 -- TreeView控件的bug (9)>里,Alberl发现了两个bug,并解决了其中一个,现在教程已经接近尾声啦,所以Alberl就解决了另外一个bug. ...

  2. duilib进阶教程 -- 各种控件的响应 (10)

    到上一个教程为止,界面显示的代码就都介绍完啦,现在开始介绍控件的响应,其实在<2013 duilib入门简明教程 -- 事件处理和消息响应 (17)>里已经列出了duilib自己定义的所有 ...

  3. antd的Tree控件实现点击展开功能

    antd 的 Tree 控件没有提供点击展开的功能,只能通过左边的三角形实现展开和收起,没办法只好自己实现这个功能. 先看效果 如图实现的是类似 Mac 文件目录形式的结构,有箭头代表是个文件夹,点击 ...

  4. Expression Blend实例中文教程(13) - 控件模板快速入门ControlTemplates

    上篇,介绍了控件样式(Style)和模板(Template)的基础概念,并且演示了使用Blend设计控件样式.本篇将继续介绍使用Blend设计自定义控件模板 - ControlTemplate.Con ...

  5. Duilib教程-控件练习

    一.控件消息的响应. 在HelloDuilib例子中,程序不能退出,在这里,我将添加一个关闭按钮,当点击它时,调用PostQuitMessage进行退出. 首先在界面的右上角添加一个关闭按钮,并取名为 ...

  6. vue+element项目中使用el-dialog弹出Tree控件报错问题

    1. 按正常的点击按钮,显示dialog弹出的Tree控件,然后把该条数据下的已经选中的checkbox , 用setCheckedNodes或者setCheckedKeys方法选择上 , 报下面这个 ...

  7. 【转】PyQt5系列教程(七)控件

    PyQt5系列教程(七)控件   软硬件环境 Windows 10 Python 3.4.2 PyQt 5.5.1 PyCharm 5.0.4 前言 控件是PyQt应用程序的基石.PyQt5自带很多不 ...

  8. CPF 入门教程 - 各个控件介绍(八)

    CPF C#跨平台桌面UI框架 系列教程 CPF 入门教程(一) CPF 入门教程 - 数据绑定和命令绑定(二) CPF 入门教程 - 样式和动画(三) CPF 入门教程 - 绘图(四) CPF 入门 ...

  9. 在MonthCalendar控件中选中日期

    Calendar.MONTH Calendar now=Calendar.getInstance();System.out.print(now.get(Calendar.MONTH));得到的月份少1 ...

随机推荐

  1. iOS 蒙板,图片叠加显示漏空部分

    懒惰了一个月了,今天写写项目里遇到的一个问题. 图片a 和图片b相互叠加,a图片四周是白色的不规则图形,里面填充黑色. b图片是一张正常图片. 需求是叠加在一起,要求将b图片根据a图片的黑色形状 扣出 ...

  2. Linux Kconfig及Makefile学习

    内核源码树的目录下都有两个文档Kconfig (2.4版本是Config.in)和Makefile.分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源 ...

  3. 为DELL inspiron 14R安装CentOS X64 6.4

    今天接到一个任务,为DELL inspiron 14R安装CentOS X64 6.4,本以为这是小菜一碟,不算个啥,大大小小安装LINUX CENTOS 不下上百次了,还怕这个?结果,各种碰壁... ...

  4. Codeforces Beta Round #18 (Div. 2 Only) C. Stripe 前缀和

    C. Stripe Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/problem/18/C ...

  5. 微信公共服务平台开发(.Net 的实现)6-------自定义菜单

    用户自定义菜单制作时,需要用到access_token,我们直接使用前面讲解的IsExistAccess_Token()函数.我理解的微信公共平台里面菜单分为button和sub_button,即菜单 ...

  6. 初次接触CodeSmith

    说到开发效率的提高,代码生成器肯定是其中必不可少的重点.说到代码生成器,鼎鼎大名CodeSmith肯定是如雷贯耳. CodeSmith最大的特点是能够自定义模板(通俗的说就是想生成什么样就可以生成什么 ...

  7. 2012 East Central Regional Contest 解题报告

    昨晚各种莫名其妙卡题. 不过细看这套题还挺简单的.全是各种暴力. 除了最后一道题计算几何看起来很麻烦的样子,其他题都是很好写的吧. A. Babs' Box Boutique 题目大意是给出不超过10 ...

  8. GDB---Oracle Function Call List

    http://yong321.freeshell.org/Oracle Function Call List 1. Oracle function call list If you want to s ...

  9. ubuntu14 部署zookeeper3.4.6启动失败

    解压缩zookeeper,启动时,报如下错误: zkServer.sh: 81: /home/xxx/zookeeper-3.4.6/bin/zkEnv.sh: Syntax error: " ...

  10. 对shell中的与(&&)和或(||)的理解

    先说明一下: 如果第一个命令执行成功,与操作符 (&&)才会执行第二个命令 如果第一个命令执行失败,或操作符 (||)才会执行第二个命令 可以分析一下下面的命令的输出: #!/bin/ ...