zoukankan      html  css  js  c++  java
  • DWZ (JUI) 教程 tree 控件的选中事件

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

    先简单说一下流程 

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

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

    关键是回调函数返回的结构 {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});                                                            
                    });    
                });    
            }    
        }  
    View Code
  • 相关阅读:
    leetcode 122. Best Time to Buy and Sell Stock II
    leetcode 121. Best Time to Buy and Sell Stock
    python 集合(set)和字典(dictionary)的用法解析
    leetcode 53. Maximum Subarray
    leetcode 202. Happy Number
    leetcode 136.Single Number
    leetcode 703. Kth Largest Element in a Stream & c++ priority_queue & minHeap/maxHeap
    [leetcode]1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
    正则表达式
    十种排序算法
  • 原文地址:https://www.cnblogs.com/donchen/p/4112859.html
Copyright © 2011-2022 走看看