数的成功例子

/*!
* Ext JS Library 3.0.0
* Copyright(c) 2006-2009 Ext JS, LLC
* licensing@extjs.com
* http://www.extjs.com/license
*/

Ext.onReady(function(){
    var tree = new Ext.tree.TreePanel({
        renderTo:'tree-div',
        title: 'My Task List',
        height: 450,
        width: 600,
        useArrows:true,
        autoScroll:true,
        animate:true,
        enableDD:true,
        containerScroll: true,
        rootVisible: false,
        frame: true,
        root: {
            nodeType: 'async'
        },
       
        dataUrl: 'check-nodes.json',
       
        buttons: [{
            text: 'Get Completed Tasks',
            handler: function(){
                var msg = '', selNodes = tree.getChecked(); // getNode  select return array
                Ext.each(selNodes, function(node){
                    if(msg.length > 0){
                        msg += ', ';
                    }
                    msg += node.text;
                });
                Ext.Msg.show({
                    title: 'Completed Tasks',
                    msg: msg.length > 0 ? msg : 'None',
                    icon: Ext.Msg.INFO,
                    minWidth: 200,
                    buttons: Ext.Msg.OK
                });
            }
        }]
    });
   
    tree.on('checkchange', function(node, checked) {
node.expand();  // 展开树
    var no = 0;
       // 当被单击的节点是叶子节点时
       if(node.isLeaf()){
       // 选中子节点中的一个选项
       if(node.getUI().isChecked()){
       // 父节点在没被选中的情况下
       if(!node.parentNode.getUI().isChecked()){
       // 遍历子节点的选项
       var num = node.parentNode.childNodes.length;
       alert('num = '+num);
       node.parentNode.eachChild(function(child){
       // 子节点中有一项未被选中,停止 跳出循环
       if(child.getUI().isChecked()){
       no++;
       //alert('走了这个' + no);
       //checkBoolean = false;
       //return;
       }
       });
       if(no==num){
       //alert("ok 选中父节点");
       node.parentNode.ui.toggleCheck(checked);      
           node.parentNode.attributes.checked = true;

       }
       // 父节点选中情况下不做处理
       }else{
       return;
       }
       }
       // 去选弹出
       if(!node.getUI().isChecked()){
       //alert('点击了G1');
      
       }
      
       }
      
       // 当被单击的节点不是叶子节点时
        if(!node.isLeaf()){
        node.attributes.checked = checked;      
        node.eachChild(function(child) {      
            child.ui.toggleCheck(checked);      
            child.attributes.checked = checked;      
            child.fireEvent('checkchange', child, checked);      
        });      
        }
    });
   
    tree.getRootNode().expand(true);
});

你可能感兴趣的:(C++,c,json,UI,ext)