欢迎光临桐乡市万年长
详情描述

1. HTML 结构

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>jEasyUI 树形菜单示例</title>
    <link rel="stylesheet" type="text/css" href="https://www.jeasyui.com/easyui/themes/default/easyui.css">
    <link rel="stylesheet" type="text/css" href="https://www.jeasyui.com/easyui/themes/icon.css">
    <script type="text/javascript" src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script type="text/javascript" src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
</head>
<body>
    <div style="margin:20px 0;">
        <button onclick="addRootNode()">添加根节点</button>
        <button onclick="addChildNode()">添加子节点</button>
        <button onclick="updateNode()">修改选中节点</button>
        <button onclick="deleteNode()">删除选中节点</button>
    </div>

    <div style="margin:20px 0">
        <input id="nodeText" class="easyui-textbox" style="width:200px" 
               data-options="prompt:'输入节点文本'">
        <input id="nodeIcon" class="easyui-textbox" style="width:200px" 
               data-options="prompt:'输入图标类名(如:icon-add)'">
    </div>

    <ul id="tt" class="easyui-tree" style="width:300px;padding:10px"></ul>

    <script>
        $(function(){
            // 初始化树形菜单
            $('#tt').tree({
                data: [{
                    id: 1,
                    text: '根节点1',
                    children: [{
                        id: 11,
                        text: '子节点1'
                    },{
                        id: 12,
                        text: '子节点2',
                        children: [{
                            id: 121,
                            text: '孙子节点1'
                        }]
                    }]
                },{
                    id: 2,
                    text: '根节点2'
                }]
            });
        });
    </script>
</body>
</html>

2. 添加节点的方法

添加根节点

function addRootNode() {
    var text = $('#nodeText').textbox('getValue');
    if (!text) {
        $.messager.alert('提示', '请输入节点文本');
        return;
    }

    var icon = $('#nodeIcon').textbox('getValue') || 'icon-ok';
    var nodeId = 'node_' + new Date().getTime(); // 生成唯一ID

    $('#tt').tree('append', {
        data: [{
            id: nodeId,
            text: text,
            iconCls: icon
        }]
    });

    // 清空输入框
    $('#nodeText').textbox('clear');
}

添加子节点

function addChildNode() {
    var selectedNode = $('#tt').tree('getSelected');
    if (!selectedNode) {
        $.messager.alert('提示', '请先选择一个节点');
        return;
    }

    var text = $('#nodeText').textbox('getValue');
    if (!text) {
        $.messager.alert('提示', '请输入节点文本');
        return;
    }

    var icon = $('#nodeIcon').textbox('getValue') || 'icon-add';
    var nodeId = 'node_' + new Date().getTime();

    $('#tt').tree('append', {
        parent: selectedNode.target,
        data: [{
            id: nodeId,
            text: text,
            iconCls: icon
        }]
    });

    $('#nodeText').textbox('clear');
}

3. 其他操作

修改节点

function updateNode() {
    var selectedNode = $('#tt').tree('getSelected');
    if (!selectedNode) {
        $.messager.alert('提示', '请先选择一个节点');
        return;
    }

    var text = $('#nodeText').textbox('getValue');
    var icon = $('#nodeIcon').textbox('getValue');

    if (text) {
        $('#tt').tree('update', {
            target: selectedNode.target,
            text: text
        });
    }

    if (icon) {
        $('#tt').tree('update', {
            target: selectedNode.target,
            iconCls: icon
        });
    }

    $('#nodeText').textbox('clear');
    $('#nodeIcon').textbox('clear');
}

删除节点

function deleteNode() {
    var selectedNode = $('#tt').tree('getSelected');
    if (!selectedNode) {
        $.messager.alert('提示', '请先选择一个节点');
        return;
    }

    $.messager.confirm('确认', '确定要删除这个节点吗?', function(r){
        if (r){
            $('#tt').tree('remove', selectedNode.target);
        }
    });
}

4. 通过数据源添加节点(动态加载)

// 从服务器获取数据并添加
function addNodeFromServer() {
    // 获取选中的节点
    var selectedNode = $('#tt').tree('getSelected');

    // 向服务器请求数据
    $.ajax({
        url: 'get_nodes.php',
        type: 'GET',
        dataType: 'json',
        success: function(data) {
            if (selectedNode) {
                // 添加到选中的节点下
                $('#tt').tree('append', {
                    parent: selectedNode.target,
                    data: data
                });
            } else {
                // 添加为根节点
                $('#tt').tree('append', {
                    data: data
                });
            }
        }
    });
}

5. 完整示例 - 带右键菜单

<div id="mm" class="easyui-menu" style="width:120px;">
    <div onclick="addChild()">添加子节点</div>
    <div onclick="editNode()">编辑节点</div>
    <div onclick="removeNode()">删除节点</div>
</div>

<ul id="tree2" class="easyui-tree" style="width:300px;padding:10px"></ul>

<script>
$(function(){
    $('#tree2').tree({
        data: [...],
        onContextMenu: function(e, node){
            e.preventDefault();
            $(this).tree('select', node.target);
            $('#mm').menu('show', {
                left: e.pageX,
                top: e.pageY
            });
        }
    });
});

function addChild() {
    var node = $('#tree2').tree('getSelected');
    var text = prompt('请输入节点名称:', '新节点');
    if (text) {
        $('#tree2').tree('append', {
            parent: node.target,
            data: [{
                text: text,
                iconCls: 'icon-add'
            }]
        });
    }
}

function editNode() {
    var node = $('#tree2').tree('getSelected');
    var text = prompt('修改节点名称:', node.text);
    if (text) {
        $('#tree2').tree('update', {
            target: node.target,
            text: text
        });
    }
}

function removeNode() {
    var node = $('#tree2').tree('getSelected');
    if (confirm('确定要删除吗?')) {
        $('#tree2').tree('remove', node.target);
    }
}
</script>

主要方法说明

tree('append', param) - 添加节点

  • parent: 父节点元素(可选)
  • data: 节点数据数组

tree('update', param) - 更新节点

  • target: 节点元素
  • text: 新文本
  • iconCls: 新图标

tree('remove', target) - 删除节点

tree('getSelected') - 获取选中的节点

这个示例涵盖了 jEasyUI 树形菜单的基本操作,包括添加、修改、删除节点等常见功能。

相关帖子
桐乡市殡葬服务公司电话|丧事办理,白事跟拍
桐乡市殡葬服务公司电话|丧事办理,白事跟拍
社保参保地、户籍地和工资发放地不同,按哪个标准缴费?
社保参保地、户籍地和工资发放地不同,按哪个标准缴费?
桐乡市商城网站定制开发|AI数字人视频制作,网站制作
桐乡市商城网站定制开发|AI数字人视频制作,网站制作
零基础学习中小微企业贷款知识,分清对公贷、法人贷的核心区别与特点
零基础学习中小微企业贷款知识,分清对公贷、法人贷的核心区别与特点
桐乡市丧葬服务办理|丧葬礼仪服务公司,收费透明
桐乡市丧葬服务办理|丧葬礼仪服务公司,收费透明
古人把婚礼写成
古人把婚礼写成"昏礼"并在黄昏举行,这套时间逻辑背后对应着什么样的世界观?
龙岩市一条龙殡葬服务|丧葬一站式服务,1小时上门
龙岩市一条龙殡葬服务|丧葬一站式服务,1小时上门
连云港市殡葬服务一条龙价格|办理丧葬服务,丧葬吊唁
连云港市殡葬服务一条龙价格|办理丧葬服务,丧葬吊唁
太原市精准获客渠道&php开源商城二次开发,服务可靠
太原市精准获客渠道&php开源商城二次开发,服务可靠
星座性格是否会随着个人成长经历而发生改变?
星座性格是否会随着个人成长经历而发生改变?
莆田市殡仪服务公司-租冰棺服务,一年365天
莆田市殡仪服务公司-租冰棺服务,一年365天
奉化区网站优化服务|购物网站设计开发,优秀设计团队
奉化区网站优化服务|购物网站设计开发,优秀设计团队
公共交通票价如何与共享单车、网约车实现更优惠的联动?
公共交通票价如何与共享单车、网约车实现更优惠的联动?
威海市AI数字人直播带货&独立网站建设,小程序开发
威海市AI数字人直播带货&独立网站建设,小程序开发
开封市一站式殡葬服务办理|丧事一站式服务,租冰棺
开封市一站式殡葬服务办理|丧事一站式服务,租冰棺
南平市殡仪一条龙服务|白事丧事服务,一年365天
南平市殡仪一条龙服务|白事丧事服务,一年365天
铜陵市网站设计服务|AI数字人视频制作,专业建站公司
铜陵市网站设计服务|AI数字人视频制作,专业建站公司
泉州市殡葬一条龙服务公司电话-出租冰棺,快速上门
泉州市殡葬一条龙服务公司电话-出租冰棺,快速上门
社区和家庭在暴雨季来临前,应如何根据预警等级提前做好物资准备?
社区和家庭在暴雨季来临前,应如何根据预警等级提前做好物资准备?
工伤康复期间,员工的工资待遇与福利应如何依法计算与发放?
工伤康复期间,员工的工资待遇与福利应如何依法计算与发放?
淮安市正规殡葬公司|白事丧事一条龙服务,葬礼跟拍
淮安市正规殡葬公司|白事丧事一条龙服务,葬礼跟拍