树状图插件

本文介绍了两个基于jQuery的树状图插件:jsTree和zTree。jsTree支持XML、JSON、HTML数据源,提供丰富的操作和事件监听。zTree则以其高性能、灵活配置和多功能性著称,支持动态加载、多种浏览器兼容及自定义图标等功能。文章提供了每个插件的基本用法、特点和示例,并给出了官方和GitHub资源链接。
摘要由CSDN通过智能技术生成

1. jsTree

介绍
jsTree是一个 基于jQuery的Tree控件。支持XML,JSON,Html三种数据源。提供创建,重命名,移动,删除,拖"放节点操作。可以自己自定义创建,删 除,嵌套,重命名,选择节点的规则。在这些操作上可以添加多种监听事件。

使用方式

引入jq以及jstree js文件和css文件

<link rel="stylesheet" href="jstree/themes/default/style.min.css">
<script src="js/jquery.min.js"></script>
<script src="jstree/js/jstree.js"></script>

事件

 // 展开节点
$("#jstree").on("loaded.jstree", function (event, data) {
    // 展开所有节点
    //$('#jstree').jstree('open_all');
    // 展开指定节点
    //data.instance.open_node(1);     // 单个节点 (1 是顶层的id)
    data.instance.open_node([1, 10]); // 多个节点 (展开多个几点只有在一次性装载后所有节点后才可行)1:从第一个节点开始 10:展开节点数,最大为总的节点数
});

// 所有节点都加载完后
$("#jstree").on("ready.jstree", function (event, data) {
  
});
//注:loaded和ready的区别:
//loaded:首次加载根节点后触发
//ready:所有节点加载完成后触发

// 获得点击节点的id  id为数据结构中的id
$('#jstree').on("changed.jstree", function (e, data) {
    console.log("The selected nodes are:");
    console.log(data.selected);
    alert('node.id is:' + data.node.id);
    alert('node.text is:'+data.node.text);
    console.log(data);
});

//绑定点击事件2
 $("#jstree").jstree({
     "core":{
         "data":treeData
     }
 }).bind('select_node.jstree', function (event, data) {  //绑定的点击事件
     console.log(data,"=>data")
 });

API

  • $("#jstree").jstree().get_theme():取得当前激活即使用的主题
  • $("#jstree").jstree().set_theme(name, url):设置主题
  • $("#jstree").jstree().show_dots(),,:显示树边框的点
  • $("#jstree").jstree().hide_dots():隐藏树边框的点
  • $("#jstree").jstree().toggle_dots()激活树边框的点
  • $("#jstree").jstree().show_icons(),,:显示树的图标
  • $("#jstree").jstree().hide_icons():隐藏树的图标
  • $("#jstree").jstree().toggle_icons():激活树的图标

示例

  1. 将html转换成树状图
<div id="jstree">
        <ul>
            <li>root
                <ul>
                    <li>root1
                        <ul>
                            <li>child1-1</li>
                            <li>child1-2</li>
                        </ul>
                    </li>
                    <li>root2
                        <ul>
                            <li>child2-1</li>
                            <li>child2-2</li>
                            <li>child2-3</li>
                        </ul>
                    </li>
                    <li>root3</li>
                </ul>
            </li>
        </ul>
    </div>
 $("#jstree").jstree()

效果图:
在这里插入图片描述
2

Vue3 中的树状图插件推荐可以尝试使用 Element Plus 的 Tree 组件或者是 Vuedraggable、VTreeview 等轻量级库。Element Plus 提供了丰富的 UI 和交互功能,适合有完整界面需求的情况。而 Vuedraggable 和 VTreeview 更侧重于数据驱动的拖拽操作和简单的树形结构展示,对于只需要基础树形结构并且需要更多自定义选项的场景较为合适。 以下是安装和使用的简单步骤: 1. 安装依赖: - 对于 Element Plus:`npm install element-plus` - 或者 Vuedraggable/VTreeview:先安装 Vue,然后分别通过命令 `npm install vuedraggable` 或 `npm install vtreeview` 安装。 2. 引入组件: - Element Plus: 将 Element Plus 的 Tree 组件添加到项目中,并在需要的地方导入并使用 `<el-tree>` 标签。 - Vuedraggable/VTreeview: 导入所需模块并在 Vue 文件中注册组件或直接在模板中使用。 3. 使用示例: - Element Plus 示例: ```html <template> <el-tree :data="treeData" :props="{ children: 'children', label: 'name' }"></el-tree> </template> <script> import { ElTree } from "element-plus"; export default { components: { ElTree }, data() { return { treeData: [ { name: '父节点1', children: [{ name: '子节点1-1' }, { name: '子节点1-2' }] }, { name: '父节点2' } ] }; } }; </script> ``` - Vuedraggable 示例: ```html <template> <v-treeview ref="treeview" :data="nodes" @node-dragged="handleDrag"> <!-- ... --> </v-treeview> </template> <script> import VTreeView from 'vtreeview'; export default { components: { VTreeView }, data() { return { nodes: [...] }; }, methods: { handleDrag(node) { // 更新树形数据逻辑 } } }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值