jsTree使用

jsTree可以显示一个树状视图,支持复选框选中,选中触发事件等:

其中主要用到的方法有:
1.设置数据:
这里的data一般是ajax请求服务器返回的,必须要有id,parent,text这三个字段用于显示,也可以额外返回自己需要的字段。
这里还增加了插件配置:'plugins':["wholerow","checkbox"] 表示在会显示复选框。

//一般data从后台返回,调用这个方法显示视图
$('#jstree_demo_div').jstree({'plugins':["wholerow","checkbox"], 'core' : {
    'data' : [
       { "id" : "ajson1", "parent" : "#", "text" : "Simple root node" },
       { "id" : "ajson2", "parent" : "#", "text" : "Root node 2" ,'state' : {  'selected' : false },},
       { "id" : "ajson3", "parent" : "ajson2", "text" : "Child 1" },
       { "id" : "ajson4", "parent" : "ajson2", "text" : "Child 2" },
    ]
} });

2.监听选择选择事件,方法返回一个data,为上面设置jstree显示的data:

$('#jstree_demo_div').on("changed.jstree", function (e, data) {
  console.log(data.selected);
  console.log("selected");
});

3.获取选中的列的对象用如下方法:

$('#jstree_demo_div').jstree().get_selected(true);

如果只想返回ID,那么不用传true参数即可

4.如果一个页面中发出两次ajax请求,调用了两次jstree显示方法,但是第二次显示的结果仍然是第一次的话,那么需要再每次发送ajax请求之前调用destroy方法清空一下jsTree(其实官网上还有一个refresh方法,但是我试了一下并不管用,最后才试出的用这个方法):

$('#jstree_div').jstree("destroy");

完整的代码如下:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script>
</head>
<body>

<div id="jstree_demo_div"></div>

<button>OK</button>

</body>
<script type="text/javascript">
    // 选择的时候调用的方法
    $('#jstree_demo_div').on("changed.jstree", function (e, data) {
      console.log(data.selected);
      console.log("selected");
    });
    //
    $('button').on('click', function () {
        //get_selected返回选中的列
        console.log($('#jstree_demo_div').jstree().get_selected(true));
    });

    //一般data从后台返回,调用这个方法显示视图
    $('#jstree_demo_div').jstree({'plugins':["wholerow","checkbox"], 'core' : {
        'data' : [
           { "id" : "ajson1", "parent" : "#", "text" : "Simple root node" },
           { "id" : "ajson2", "parent" : "#", "text" : "Root node 2" ,'state' : {  'selected' : false },},
           { "id" : "ajson3", "parent" : "ajson2", "text" : "Child 1" },
           { "id" : "ajson4", "parent" : "ajson2", "text" : "Child 2" },
        ]
    } });
</script>
</html>

页面显示:

这里写图片描述

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值