KaisonChen 2015-09-23 02:11 采纳率: 33.3%
浏览 3004
已结题

SimpleTree源码中的展开节点方法,不知道怎么展开到指定的节点,请前段大神指教

我现在要做的是在刷新组织树时,展开到指定的节点,我传了一个pnode(组织树中

的ID),但是不知道展开节点的方法是哪个,不知道在哪里做判断停止展开节点。下面是SimpleTree的js代码。
  • 写回答

1条回答 默认 最新

  • KaisonChen 2015-09-23 02:13
    关注

    下面是SimpleTree 的JS代码
    /*

    • jQuery SimpleTree Drag&Drop plugin
    • Update on 22th May 2008
    • Version 0.3 *
    • Licensed under BSD http://en.wikipedia.org/wiki/BSD_License
    • Copyright (c) 2008, Peter Panov panov@elcat.kg, IKEEN Group http://www.ikeen.com
    • All rights reserved. *
    • Redistribution and use in source and binary forms, with or without
    • modification, are permitted provided that the following conditions are met:
    • * Redistributions of source code must retain the above copyright
    • notice, this list of conditions and the following disclaimer.
    • * Redistributions in binary form must reproduce the above copyright
    • notice, this list of conditions and the following disclaimer in the
    • documentation and/or other materials provided with the distribution.
    • * Neither the name of the Peter Panov, IKEEN Group nor the
    • names of its contributors may be used to endorse or promote products
    • derived from this software without specific prior written permission. *
    • THIS SOFTWARE IS PROVIDED BY Peter Panov, IKEEN Group ``AS IS'' AND ANY
    • EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
    • WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    • DISCLAIMED. IN NO EVENT SHALL Peter Panov, IKEEN Group BE LIABLE FOR ANY
    • DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    • (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    • LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    • ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    • (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    • SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */

    $.fn.simpleTrees = function(opt){
    return this.each(function(){
    var TREE = this;
    var ROOT = $('.root',this);
    var mousePressed = false;
    var mouseMoved = false;
    var dragMoveType = false;
    var dragNode_destination = false;
    var dragNode_source = false;
    var dragDropTimer = false;
    var ajaxCache = Array();

        var beforeAjax = false;
        var nodeCheckBox = false;
        var checkBoxClick = false;
        var return_state = false;
    
        TREE.option = {
            drag:       false,
            animate:    false,
            autoclose:  false,
            speed:      'fast',
            afterAjax:  false,
            afterMove:  false,
            afterClick: false,
            afterDblClick:  false,
            afterContextMenu:   false,
            docToFolderConvert:false,
            beforeAjax : false, //beforeAjax : 展开AJAX之前事件
    
            /**
             * 复选框属性及状态标志
             * 默认属性,支持重新定义
             * by zhengchao 2010-04-05
             * 例: <span ck='a'>表示全选</span>
             */
            nodeCheckBox : false,
            ckFlag : 'ck',          //标签中的元素
            allCheckFlag  : 'a',    //全选
            halfCheckFlag : 'h',    //半选
            noCheckFlag   : 'n',    //没选
            checkBoxClick : false,   //多选框事件
            hasIcon: true,      //是否显示节点图标
            pnode : ''
        };
    
        TREE.option = $.extend(TREE.option,opt);
        $.extend(this, {getSelected: function(){
            return $('span.active', this).parent();
        }});
        TREE.closeNearby = function(obj)
        {
            $(obj).siblings().filter('.folder-open, .folder-open-last, .folder-noicon-open').each(function(){
                var childUl = $('>ul',this);
                var className = this.className;
                this.className = className.replace('open','close');
                if(TREE.option.animate)
                {
                    childUl.animate({height:"toggle"},TREE.option.speed);
                }else{
                    childUl.hide();
                }
            });
        };
        TREE.nodeToggle = function(obj)
        {
            var childUl = $('>ul',obj);
            if(childUl.is(':visible')){
                obj.className = obj.className.replace('open','close');
    
                if(TREE.option.animate)
                {
                    childUl.animate({height:"toggle"},TREE.option.speed);
                }else{
                    childUl.hide();
                }
            }else{
                obj.className = obj.className.replace('close','open');
                if(TREE.option.animate)
                {
                    childUl.animate({height:"toggle"},TREE.option.speed, function(){
                        if(TREE.option.autoclose)TREE.closeNearby(obj);
                        if(childUl.is('.ajax'))TREE.setAjaxNodes(childUl, obj.id);
                    });
                }else{
                    childUl.show();
                    if(TREE.option.autoclose)TREE.closeNearby(obj);
                    if(childUl.is('.ajax'))TREE.setAjaxNodes(childUl, obj.id);
                }
            }
        };
        TREE.setAjaxNodes = function(node, parentId, callback)
        {
            if($.inArray(parentId,ajaxCache) == -1){
                ajaxCache[ajaxCache.length]=parentId;
                var url = $.trim($('>li', node).text());
                if(url && url.indexOf('url:'))
                {
                    url=$.trim(url.replace(/.*\{url:(.*)\}/i ,'$1'));
                    $.ajax({
                        type: "POST",
                        url: url,
                        contentType:'html',
                        cache:false,
                        success: function(responce){
                            //AJAX节点展开前动作
                            if (typeof TREE.option.beforeAjax == 'function'){
                                TREE.option.beforeAjax(node);
                            }
                            node.removeAttr('class');
                            node.html(responce);
                            $.extend(node,{url:url});
                            TREE.setTreeNodes(node, false); //true or false
                            if(typeof TREE.option.afterAjax == 'function')
                            {
                                TREE.option.afterAjax(node);
                            }
                            if(typeof callback == 'function')
                            {
                                if(return_state ==false){
    
                                    callback(node);
                                }
                            }
                        }
                    });
                }
    
            }
        };
        TREE.setTreeNodes = function(obj, useParent){
            obj = useParent? obj.parent():obj;
            var nodes_ = [];
            nodes_ = $('li>span', obj);
    
            nodes_.addClass('text');
            nodes_.bind('selectstart', function(){return false;});
            nodes_.click(function(){
                $('.active',TREE).attr('class','text');
                if(this.className=='text')
                {
                    this.className='active';
                }
                if(typeof TREE.option.afterClick == 'function')
                {
                    TREE.option.afterClick($(this).parent());
                }
                return false;
            });
            nodes_.dblclick(function(){
                mousePressed = false;
                TREE.nodeToggle($(this).parent().get(0));
                if(typeof TREE.option.afterDblClick == 'function')
                {
                    TREE.option.afterDblClick($(this).parent());
                }
                return false;
            });
            nodes_.bind("contextmenu",function(){
                $('.active',TREE).attr('class','text');
                if(this.className=='text')
                {
                    this.className='active';
                }
                if(typeof TREE.option.afterContextMenu == 'function')
                {
                    TREE.option.afterContextMenu($(this).parent());
                }
                return false;
            });
            nodes_.mousedown(function(event){
                mousePressed = true;
                cloneNode = $(this).parent().clone();
                var LI = $(this).parent();
                if(TREE.option.drag)
                {
                    $('>ul', cloneNode).hide();
                    $('body').append('<div id="drag_container"><ul></ul></div>');
                    $('#drag_container').hide().css({opacity:'0.8'});
                    $('#drag_container >ul').append(cloneNode);
                    $("<img>").attr({id : "tree_plus",src   : "../images/plus.gif"}).css({width: "7px",display: "block",position: "absolute",left   : "5px",top: "5px", display:'none'}).appendTo("body");
                    $(document).bind("mousemove", {LI:LI}, TREE.dragStart).bind("mouseup",TREE.dragEnd);
                }
                return false;
            });
            nodes_.mouseup(function(){
                if(mousePressed && mouseMoved && dragNode_source)
                {
                    TREE.moveNodeToFolder($(this).parent());
                }
                TREE.eventDestroy();
            });
            /**
             * 生长出多选框
             * @author zhengchao
             */
            if(TREE.option.nodeCheckBox){
                var parentChecked_ = 0 ; // 全选框默认 undefined状态
                var parentIndeterminate_ = 0; //半选框默认 undefined状态
    
                if($("input:first",obj.parent()).prop("checked")){
                    parentChecked_ = 2; //全选
                }else {
                    parentChecked_ = 1; //没选
                }
    
                if($("input:first",obj.parent()).attr("indeter")=='true' || $("input:first",obj.parent()).attr("indeter")==true){
                    parentIndeterminate_ = 2; //半选
                }else {
                    parentIndeterminate_ = 1; //没选
                }
    
                nodes_.each(function (){//alert($(this).attr("checked"));
                    //纯净标签
    
                    if(this.getAttribute('checked') == '1'){//2011-6-14 luke
                        // console.log('checked');
                        var nodeHtml = "<input type='image' src='../images/tree/iconCheckAll.gif' checked indeter='false' name='tree_chk' class='tree_chk' id='tree_chk' value='"+$(this).attr("value")+"'/>";//"<input type='checkbox' name='tree_chk' onclick='event.cancelBubble=true;' />";
                    }else{
                        // console.log('unchecked');
                        var nodeHtml = "<input type='image' src='../images/tree/iconUnCheckAll.gif' indeter='false' name='tree_chk' class='tree_chk' id='tree_chk' value='"+$(this).attr("value")+"'/>";//"<input type='checkbox' name='tree_chk' onclick='event.cancelBubble=true;' />";
                    }
                    nodeHtml += $(this).html();
                    $(this).html(nodeHtml);
                    var input_ = $("input[type=image]",$(this)).eq(0);
                    //如果父节点全选,则将所有下级子节点全选
                    if(parentChecked_ == 2)$(this).attr(TREE.option.ckFlag,TREE.option.allCheckFlag);
                    if(parentChecked_ == 1 && parentIndeterminate_ == 1)$(this).attr(TREE.option.ckFlag,TREE.option.noCheckFlag);
    
                    if(this.getAttribute('checked') == '1'){//2011-6-14 luke
                        TREE.checkBoxStatus(input_,false,true);
                    }else{
                        TREE.checkBoxStatus(input_,false,false);
                    }
                    //状态构造
            /**     if($(this).attr(TREE.option.ckFlag) == undefined || //没有设置标志,默认认为没选
                        $(this).attr(TREE.option.ckFlag) == TREE.option.noCheckFlag){//没选
                        $(this).attr(TREE.option.ckFlag,TREE.option.noCheckFlag);//修正 undefined 设置
                        TREE.checkBoxStatus(input_,false,false);
                    }else if($(this).attr(TREE.option.ckFlag) == TREE.option.halfCheckFlag){//半选
                        TREE.checkBoxStatus(input_,true,false);
                    }else if($(this).attr(TREE.option.ckFlag) == TREE.option.allCheckFlag){//全选
                        TREE.checkBoxStatus(input_,false,true);
                    }**/
                    if(typeof TREE.option.checkBoxClick == 'function'){//如果事件被重写,则利用重写的事件规则
                        TREE.option.checkBoxClick(input_);
                    }else{// 否则为复选框绑定默认事件规则
                        input_.click(function (e){TREE.checkBoxClickDefault(input_);});
                    }
                    TREE.changeParentNodes(input_);//2011-6-14 luke
                });
            }
    
            //针对li进行操作
            var li_ = [];
            li_ = $('li', obj);
            li_.each(function(i){
                var nodeId = "";
                if(this.attributes[0] != undefined){
                     nodeId= this.attributes[0].value;
                }
                var className = this.className;
                var open = false;
                var cloneNode = false;
                var LI = this;
                var childNode = $('>ul',this); //当前li的子集
                if(childNode.size()>0){//如果存在子集
                    var setClassName = 'folder-';
                    if(className && className.indexOf('open')>=0){ //判断子集状态
                            setClassName=setClassName+'open';
                            open = true;
                    }else{
                            setClassName=setClassName+'close';
                    }
                    //判断是否是末节点,给予 -last样式
                    if(TREE.option.hasIcon==true){
                        this.className = setClassName + ($(this).is(':last-child')? '-last':'');
                    }else{
                        this.className = "folder-noicon-close";
                    }
                    //子集未打开或者为AJAX节点,隐藏子集
                    if(!open || className.indexOf('ajax')>=0)childNode.hide();
    
                    TREE.setTrigger(this);
                }else{
                    TREE.setTrigger(this);
                    var setClassName = 'doc';
                    this.className = setClassName + ($(this).is(':last-child')? '-last':'');
                }
                if(nodeId == TREE.option.pnode){
                    return_state= true;
                }
            });
            li_.before('<li class="line">&nbsp;</li>');
            li_.filter(':last-child').after('<li class="line-last"></li>');
    
            TREE.setEventLine($('.line, .line-last', obj));
        };
    
        // 复选框状态控制 by zhengchao
        TREE.checkBoxStatus = function(inputCheck,indeterminate,checked){
            //判断类型,这里必须是BOOLEAN类型
            if(typeof(indeterminate)=="boolean" && typeof(checked)=="boolean"){
        $(inputCheck).prop("checked",checked);
                $(inputCheck).attr("indeter",checked.toString());
                if(checked==true){
                    $(inputCheck).attr("src","../images/tree/iconCheckAll.gif");
                //  $(inputCheck).attr("checked","2");
                }else{
                    if(indeterminate==true){
                        $(inputCheck).attr("src","../images/tree/iconCheckGray.gif");
                //      $(inputCheck).attr("checked","1");
                    }else{
                        $(inputCheck).attr("src","../images/tree/iconUnCheckAll.gif");
                //      $(inputCheck).attr("checked","0");
                    }
                }
    
            }else{
                //alert("出现参数类型异常jquery.simple.tree.js");
            }
        };
    
        // 复选框默认事件 by zhengchao
        TREE.checkBoxClickDefault = function(input){//alert($(input).attr("checked"));
            if(!$(input).prop("checked")){//如果选中
                $("input[type=image]",$(input).parent().parent()).each(function (index){
                    TREE.checkBoxStatus(this,false,true);
                });
            }else{//没选中
                $("input[type=image]",$(input).parent().parent()).each(function (index){
                    TREE.checkBoxStatus(this,false,false);
                });
            }
            TREE.changeParentNodes($(input));
        };
    
        /**
         * 改变父节点状态(递归)
         * @param {} node
         * by zhengchao
         */
        TREE.changeParentNodes = function(input){
            var input_ = $(input).parent().parent().parent().parent();
            //根据根节点没有复选框的要求,来跳出当前递归
            //alert($("span:first",$(input_)).eq(0).html().indexOf("input"));
            //if($("span:first",$(input_)).eq(0).html().indexOf("INPUT")== -1) return ;
            if($("span:first",$(input_)).eq(0).html().indexOf("input")== -1 && $("span:first",$(input_)).eq(0).html().indexOf("INPUT")== -1) return ;
            var parentInput = $("input:first",$(input_)).eq(0);//找到父节点的选择框
            var callbackValue = TREE.decideBrotherChecked(input) ; //搜捕同级兄弟节点状态
            //父节点状态
            //alert(parentInput+"==="+callbackValue);
            if(callbackValue==2){
                TREE.checkBoxStatus(parentInput,false,true);
            }else if(callbackValue==1){
                TREE.checkBoxStatus(parentInput,true,false);
            }else if(callbackValue==0){
                TREE.checkBoxStatus(parentInput,false,false);
            }
            TREE.changeParentNodes($(parentInput));
        };
    
        /**
         * 判断同级节点状态
         * return :
         *      全选上了: 2
         *      半选上了: 1
         *      都没选上: 0
         * @author zhengchao
         */
        TREE.decideBrotherChecked = function (input){
            var nowThis = $(input).parent().parent().parent();
            var flagInteger = 0 ; //返回值变量
            var temp_ = 0; //临时变量
            var countBrother = $("input[type=image]" ,nowThis).size();//同级兄弟节点数
            $("input[type=image]" ,nowThis).each(function (index){
                if(this.checked) temp_++;//选中
                if(this.indeter){//发现半选,直接判定结果,并跳出循环
                    flagInteger = 1;
                    return false ;
                }
            });
            if(flagInteger != 1){
                if(temp_ == 0) return 0;
                if(temp_ != countBrother) return 1;
                if(temp_ == countBrother) return 2;
            }
            return flagInteger;
        }
    
    
        TREE.setTrigger = function(node){
            $('>span',node).before('<img class="trigger" src="../images/spacer.gif" border=0 />');
            var trigger = $('>.trigger', node);
            TREE.nodeToggle(node);
            trigger.click(function(event){
                TREE.nodeToggle(node);
            });
            if(!$.browser.msie)
            {
                trigger.css('float','left');
            }
        };
        TREE.dragStart = function(event){
            var LI = $(event.data.LI);
            if(mousePressed)
            {
                mouseMoved = true;
                if(dragDropTimer) clearTimeout(dragDropTimer);
                if($('#drag_container:not(:visible)')){
                    $('#drag_container').show();
                    LI.prev('.line').hide();
                    dragNode_source = LI;
                }
                $('#drag_container').css({position:'absolute', "left" : (event.pageX + 5), "top": (event.pageY + 15) });
                if(LI.is(':visible'))LI.hide();
                var temp_move = false;
                if(event.target.tagName.toLowerCase()=='span' && $.inArray(event.target.className, Array('text','active','trigger'))!= -1)
                {
                    var parent = event.target.parentNode;
                    var offs = $(parent).offset({scroll:false});
                    var screenScroll = {x : (offs.left - 3),y : event.pageY - offs.top};
                    var isrc = $("#tree_plus").attr('src');
                    var ajaxChildSize = $('>ul.ajax',parent).size();
                    var ajaxChild = $('>ul.ajax',parent);
                    screenScroll.x += 19;
                    screenScroll.y = event.pageY - screenScroll.y + 5;
    
                    if(parent.className.indexOf('folder-close')>=0 && ajaxChildSize==0)
                    {
                        if(isrc.indexOf('minus')!=-1)$("#tree_plus").attr('src','../images/plus.gif');
                        $("#tree_plus").css({"left": screenScroll.x, "top": screenScroll.y}).show();
                        dragDropTimer = setTimeout(function(){
                            parent.className = parent.className.replace('close','open');
                            $('>ul',parent).show();
                        }, 700);
                    }else if(parent.className.indexOf('folder')>=0 && ajaxChildSize==0){
                        if(isrc.indexOf('minus')!=-1)$("#tree_plus").attr('src','../images/plus.gif');
                        $("#tree_plus").css({"left": screenScroll.x, "top": screenScroll.y}).show();
                    }else if(parent.className.indexOf('folder-close')>=0 && ajaxChildSize>0)
                    {
                        mouseMoved = false;
                        $("#tree_plus").attr('src','../images/minus.gif');
                        $("#tree_plus").css({"left": screenScroll.x, "top": screenScroll.y}).show();
    
                        $('>ul',parent).show();
                        /*
                            Thanks for the idea of Erik Dohmen
                        */
                        TREE.setAjaxNodes(ajaxChild,parent.id, function(){
                            parent.className = parent.className.replace('close','open');
                            mouseMoved = true;
                            $("#tree_plus").attr('src','../images/plus.gif');
                            $("#tree_plus").css({"left": screenScroll.x, "top": screenScroll.y}).show();
                        });
    
                    }else{
                        if(TREE.option.docToFolderConvert)
                        {
                            $("#tree_plus").css({"left": screenScroll.x, "top": screenScroll.y}).show();
                        }else{
                            $("#tree_plus").hide();
                        }
                    }
                }else{
                    $("#tree_plus").hide();
                }
                return false;
            }
            return true;
        };
        TREE.dragEnd = function(){
            if(dragDropTimer) clearTimeout(dragDropTimer);
            TREE.eventDestroy();
        };
        TREE.setEventLine = function(obj){
            obj.mouseover(function(){
                if(this.className.indexOf('over')<0 && mousePressed && mouseMoved)
                {
                    this.className = this.className.replace('line','line-over');
                }
            }).mouseout(function(){
                if(this.className.indexOf('over')>=0)
                {
                    this.className = this.className.replace('-over','');
                }
            }).mouseup(function(){
                if(mousePressed && dragNode_source && mouseMoved)
                {
                    dragNode_destination = $(this).parents('li:first');
                    TREE.moveNodeToLine(this);
                    TREE.eventDestroy();
                }
            });
        };
        TREE.checkNodeIsLast = function(node)
        {
            if(node.className.indexOf('last')>=0)
            {
                var prev_source = dragNode_source.prev().prev();
                if(prev_source.size()>0)
                {
                    prev_source[0].className+='-last';
                }
                node.className = node.className.replace('-last','');
            }
        };
        TREE.checkLineIsLast = function(line)
        {
            if(line.className.indexOf('last')>=0)
            {
                var prev = $(line).prev();
                if(prev.size()>0)
                {
                    prev[0].className = prev[0].className.replace('-last','');
                }
                dragNode_source[0].className+='-last';
            }
        };
        TREE.eventDestroy = function()
        {
            // added by Erik Dohmen (2BinBusiness.nl), the unbind mousemove TREE.dragStart action
            // like this other mousemove actions binded through other actions ain't removed (use it myself
            // to determine location for context menu)
            $(document).unbind('mousemove',TREE.dragStart).unbind('mouseup').unbind('mousedown');
            $('#drag_container, #tree_plus').remove();
            if(dragNode_source)
            {
                $(dragNode_source).show().prev('.line').show();
            }
            dragNode_destination = dragNode_source = mousePressed = mouseMoved = false;
            //ajaxCache = Array();
        };
        TREE.convertToFolder = function(node){
            node[0].className = node[0].className.replace('doc','folder-open');
            node.append('<ul><li class="line-last"></li></ul>');
            TREE.setTrigger(node[0]);
            TREE.setEventLine($('.line, .line-last', node));
        };
        TREE.convertToDoc = function(node){
            $('>ul', node).remove();
            $('img', node).remove();
            node[0].className = node[0].className.replace(/folder-(open|close)/gi , 'doc');
        };
        TREE.moveNodeToFolder = function(node)
        {
            if(!TREE.option.docToFolderConvert && node[0].className.indexOf('doc')!=-1)
            {
                return true;
            }else if(TREE.option.docToFolderConvert && node[0].className.indexOf('doc')!=-1){
                TREE.convertToFolder(node);
            }
            TREE.checkNodeIsLast(dragNode_source[0]);
            var lastLine = $('>ul >.line-last', node);
            if(lastLine.size()>0)
            {
                TREE.moveNodeToLine(lastLine[0]);
            }
        };
        TREE.moveNodeToLine = function(node){
            TREE.checkNodeIsLast(dragNode_source[0]);
            TREE.checkLineIsLast(node);
            var parent = $(dragNode_source).parents('li:first');
            var line = $(dragNode_source).prev('.line');
            $(node).before(dragNode_source);
            $(dragNode_source).before(line);
            node.className = node.className.replace('-over','');
            var nodeSize = $('>ul >li', parent).not('.line, .line-last').filter(':visible').size();
            if(TREE.option.docToFolderConvert && nodeSize==0)
            {
                TREE.convertToDoc(parent);
            }else if(nodeSize==0)
            {
                parent[0].className=parent[0].className.replace('open','close');
                $('>ul',parent).hide();
            }
    
            // added by Erik Dohmen (2BinBusiness.nl) select node
            if($('span:first',dragNode_source).attr('class')=='text')
            {
                $('.active',TREE).attr('class','text');
                $('span:first',dragNode_source).attr('class','active');
            }
    
            if(typeof(TREE.option.afterMove) == 'function')
            {
                var pos = $(dragNode_source).prevAll(':not(.line)').size();
                TREE.option.afterMove($(node).parents('li:first'), $(dragNode_source), pos);
            }
        };
    
        TREE.addNode = function(id, text, callback)
        {
            var temp_node = $('<li><ul><li id="'+id+'"><span>'+text+'</span></li></ul></li>');
            TREE.setTreeNodes(temp_node);
            dragNode_destination = TREE.getSelected();
            dragNode_source = $('.doc-last',temp_node);
            TREE.moveNodeToFolder(dragNode_destination);
            temp_node.remove();
            if(typeof(callback) == 'function')
            {
                callback(dragNode_destination, dragNode_source);
            }
        };
        TREE.delNode = function(callback)
        {
            dragNode_source = TREE.getSelected();
            TREE.checkNodeIsLast(dragNode_source[0]);
            dragNode_source.prev().remove();
            dragNode_source.remove();
            if(typeof(callback) == 'function')
            {
                callback(dragNode_destination);
            }
        };
    
        TREE.init = function(obj)
        {
            TREE.setTreeNodes(obj, false);
        };
        TREE.init(ROOT);
    });
    

    };
    function do_tree_check(e){
    event.cancelBubble=true;
    //alert(e.checked);
    if(e.checked){
    e.checked=false;
    e.src="../images/tree/iconUnCheckAll.gif";
    }else{
    if(e.indeter){
    e.checked=true;
    e.src="../images/tree/iconCheckAll.gif";
    }else{
    e.checked=true;
    e.src="../images/tree/iconCheckAll.gif";
    }
    }
    }

    评论

报告相同问题?

悬赏问题

  • ¥50 winform中使用edge的Kiosk模式
  • ¥15 关于#python#的问题:功能监听网页
  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信