Home  >  Article  >  Web Front-end  >  jquery zTree异步加载简单实例分享_jquery

jquery zTree异步加载简单实例分享_jquery

WBOY
WBOYOriginal
2016-05-16 17:42:141118browse

首先提供Ztree官方网站http://www.ztree.me。
Ztree是一个使用jQuery实现的JSP页面的各种功能树,本文介绍一个异步获取数据到下拉树的实现方式。
当前版本Ztree 3.5.01
simple.html

复制代码 代码如下:




simple.html
















    js
    复制代码 代码如下:

    var setting = {
    data: {
    simpleData: {
    enable: true
    // idKey:"id",
    // pIdKey:"pId",
    }
    }
    ,async: {
    enable: true,
    url:"/Java_Solr/servlet/ZTreeSerlvet",
    autoParam:["id", "name"],
    otherParam:{"otherParam":"zTreeAsyncTest"},
    // dataType: "text",//默认text
    // type:"get",//默认post
    dataFilter: filter //异步返回后经过Filter
    }
    ,callback:{
    // beforeAsync: zTreeBeforeAsync, // 异步加载事件之前得到相应信息
    asyncSuccess: zTreeOnAsyncSuccess,//异步加载成功的fun
    asyncError: zTreeOnAsyncError, //加载错误的fun
    beforeClick:beforeClick //捕获单击节点之前的事件回调函数
    }
    };
    //treeId是treeDemo
    function filter(treeId, parentNode, childNodes) {
    if (!childNodes) return null;
    for (var i=0, l=childNodes.length; ichildNodes[i].name = childNodes[i].name.replace('','');
    }
    return childNodes;
    }
    function beforeClick(treeId,treeNode){
    if(!treeNode.isParent){
    alert("请选择父节点");
    return false;
    }else{
    return true;
    }
    }
    function zTreeOnAsyncError(event, treeId, treeNode){
    alert("异步加载失败!");
    }
    function zTreeOnAsyncSuccess(event, treeId, treeNode, msg){

    }
    /***********************当你点击父节点是,会异步访问servlet,把id传过去*****************************/
    var zNodes=[];
    /* var zNodes =[
    { id:1, pId:0, name:"parentNode 1", open:true},
    { id:11, pId:1, name:"parentNode 11"},
    { id:111, pId:11, name:"leafNode 111"},
    { id:112, pId:11, name:"leafNode 112"},
    { id:113, pId:11, name:"leafNode 113"},
    { id:114, pId:11, name:"leafNode 114"},
    { id:12, pId:1, name:"parentNode 12"},
    { id:121, pId:12, name:"leafNode 121"},
    { id:122, pId:12, name:"leafNode 122"},
    { id:123, pId:12, name:"leafNode 123"},
    { id:13, pId:1, name:"parentNode 13", isParent:true},
    { id:2, pId:0, name:"parentNode 2", isParent:true}
    ]; */
    $(document).ready(function(){
    $.fn.zTree.init($("#treeDemo"), setting, zNodes);
    });

    得到zTree对象 :var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
    ZtreeServlet
    复制代码 代码如下:

    package org.hzy.servlets;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.hzy.bean.ZtreeBean;
    import com.alibaba.fastjson.JSON;
    public class ZTreeSerlvet extends HttpServlet {
    public void destroy() {
    super.destroy();
    }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println(request.getParameter("id") + " " + request.getParameter("name") + " " + request.getParameter("otherParam"));
    response.setCharacterEncoding("UTF-8");
    PrintWriter out = response.getWriter();
    ZtreeBean zb = new ZtreeBean(0, -1, "zb", true);
    ZtreeBean zb1 = new ZtreeBean(1, 0, "zb1", true);
    ZtreeBean zb2 = new ZtreeBean(2, 1, "zb2", false);
    ZtreeBean zb3 = new ZtreeBean(2, 0, "zbss", true);
    List list = new ArrayList();
    list.add(zb);
    list.add(zb1);
    list.add(zb2);
    list.add(zb3);
    String str = JSON.toJSONString(list);
    out.print(str);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
    }
    public void init() throws ServletException {
    }
    }
    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn