Tree.js

var tree = {
    zTree: '',
    pNode: '',
    setting: {
        isSimpleData: true,
        treeNodeKey: "mid",
        treeNodeParentKey: "pid",
        showLine: true,
        root: {
            isRoot: true,
            nodes: []
        },
        callback: {
            /**
             * @param {Object} event
             *     鼠标事件
             * @param {Object} treeId
             *     树的容器ID
             * @param {Object} treeNode
             *     当前点击的节点
             */
            expand: function(event, treeId, treeNode){
                tree.pNode = treeNode;
                tree.loadNodeByPNODE();
            }
        }
    },
    /**
     * 1、回调函数是由服务器端触发的,什么时候执行由服务器决定
     * 2、回调函数是由jQuery内核调用的
     * 3、客户端存在两个线程
     * 4、如果在js代码中,有一些代码要用到回调函数中的数据,那么这些代码必须放在回调函数中
     */
    loadTree: function(){
        $.post("menuitemAction_getAllMenuitem.action", null, function(data){
            $("#tree").zTree(tree.setting, data.menuitemList);
        });
    },
    /**
     * 一般情况下,如果一段代码中要用到一个变量,而这个变量的值是在回调函数中赋值的,这个时候一定要确保使用该函数时,回调函数已经执行了
     */
    loadRootNode: function(){
        var parameter = {
            pid: 0
        };
        $.post("menuitemAction_showMenuitemsByPid.action", parameter, function(data){
            tree.zTree = $("#tree").zTree(tree.setting, data.menuitemList);
        });
    },
    /**
     * 该方法是在点击父节点的+号的时候执行的,这就意味着在执行该方法的时候,树早已经生成了,所以才能用tree.zTree;
     */
    loadNodeByPNODE: function(){
        var parameter = {
            pid: tree.pNode.mid
        };
        if (!tree.zTree.getNodeByParam("pid", tree.pNode.mid)) {
            $.post("menuitemAction_showMenuitemsByPid.action", parameter, function(data){
                /**
                 * 把查询出来的子节点追加到父节点上
                 */
                tree.zTree.addNodes(tree.pNode, data.menuitemList, true);
            });
        }
    }
};
$().ready(function(){
    //tree.loadTree();
    tree.loadRootNode();
	//该方法能输出什么不确定:因为在执行该代码的时候,回调函数执行不确定,所以tree.zTree的赋值也不确定
    //alert(tree.zTree);
});

/**

 * 点击事件加载

 *   *  加载根节点

 *   *  点击该节点的+号,触发事件,加载该节点的子节点

 */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值