찾다
웹 프론트엔드JS 튜토리얼zTree jQuery 트리 플러그인의 자세한 사용 예

프로젝트는 백그라운드에서 반환된 데이터를 트리 보기 형식으로 표시하고 노드 정보를 오른쪽의 ul에 추가하도록 구현해야 합니다. 이는 후속 제출 후 사용됩니다. 노드 정보의 비동기 로딩을 구현할 수 있는 플러그인이 선택되었고 사실이 이를 입증했습니다. 플러그인은 처음 접했을 때 거의 모든 요구 사항을 충족할 만큼 강력했으며 많은 사람들의 공유를 읽었습니다. 공식 api 문서와 결합하여 마침내 기능을 구현했습니다. 효과 소개. api에는 아코디언 효과를 포함한 몇 가지 실제 작업이 추가되었습니다. 효과를 확장하려면 상위 노드에서 노드 텍스트 관련 확인란 효과를 클릭하세요. 이 기사에서는 zTree jQuery 트리 플러그인 사용에 대한 기사를 제공합니다(예제 설명). . 편집자님이 꽤 좋다고 생각하셔서 지금 공유하고 모두에게 참고용으로 드리도록 하겠습니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.

외부 리소스 도입

<link>
<script></script>
<script></script>

html 코드 부분

<p>
    </p>
        
            
    • 已选择
    •     
      

    css code

    ul,li,body{
        margin: 0;
        padding: 0;
      }
      .ztree li span.node_name {
        font-size: 16px;
      }
      .box{
        width: 500px;
        margin:10px auto;
        border:3px solid #ccc;
        padding: 20px;
        border-bottom: none;
      }
      #treeDemo{
        width: 200px;
        display: inline-block;
        background-color: #f1f1f1;
        min-height: 200px;
      }
      #ulright{
        width: 200px;
        margin-left: 50px;
        min-height: 200px;
        border:1px solid #ccc;
        display: inline-block;
        vertical-align: top;
        background-color: #eeeee8;
      }
      #ulright li{
        width: 100%;
        height: 30px;
        list-style: none;
        line-height: 30px;
        margin-bottom: 3px;
        background-color: #00b6ba;
        padding-left: 10px;
        box-sizing: border-box;
    
      }
    
    
      /**/
      .ztree li a.curSelectedNode{
        background-color: transparent;
        border:#00b6ba;
      }
      .ztree li span.node_name{
        font-size: 18px;
        line-height: 18px;
        color: #000;
      }
      .ztree li a{
        padding: 5px;
        vertical-align: middle;
      }
      .ztree li a:hover{
        text-decoration: none;
      }
      .ztree li span.button.chk{
        margin: 9px 3px;
      }

    js code

    //递归找到所有节点(非父节点)
    function getAllChildrenNodes(treeNode,result){
       if (treeNode.isParent) {
        var childrenNodes = treeNode.children;
        if (childrenNodes) {
          for (var i = 0; i ("+count+")");
        },
        //父节点展开时的事件
        onExpand: function(event, treeId, treeNode){
          //zTree对象
          var zTree = $.fn.zTree.getZTreeObj("treeDemo");
          //获取点击的id
          var nowId = treeNode.id;
          //获取所有节点
          var allNodes = zTree.getNodes();
          //获取点击节点的层级
          var level = treeNode.level;
          //定义过滤函数;获取节点层级与点击节点层级相同并且为父节点的节点
          function filter(node) {
            return (node.level == treeNode.level && node.isParent);
          }
          //获得点击节点同级的父节点的集合
          var sameLevelNodes = zTree.getNodesByFilter(filter);
          //遍历同级节点集合
          for(var i=0;i<samelevelnodes.length><span></span>");
              addLi.find("span").text(treeNode.name);
              addLi.animate({
                width:"100%",
                height:"30"
              },400)
              addLi.appendTo($("#ulright"));
              //如果点击的节点存在connect字段;判断复选框状态加入到右侧ul或删除
              if(treeNode.connect){
                //遍历右侧li,如果选中的已经存在;return
                for(var i=0;i<rightli.length><span></span>");
                  addLi.find("span").text(treeNode.connect);
                  addLi.animate({
                    width:"100%",
                    height:"30"
                  },400)
                addLi.appendTo($("#ulright"));
              }
              //将被勾选的节点背景颜色更改
              $("#treeDemo").find("a[title="+treeNode.name+"]").css("backgroundColor","#00b6ba");
            //非选中状态,删除
            }else{
              //将右侧的次节点对应的li删除
              $("#ulright").find("li[title="+treeNode.name+"]").animate({
                width:"0%",
                height:"0"
              },400,function(){
                $("#ulright").find("li[title="+treeNode.name+"]").remove();
              })
              //取消此节点的背景颜色
              $("#treeDemo").find("a[title="+treeNode.name+"]").css("backgroundColor","");
            }
          //选中的是父节点;获取所有子节点(非父节点),判断复选框状态加入到右侧ul或删除
          }else{
            //调用递归函数;获取所有非父级子节点数组集合
            var addNodesArray = getAllChildrenNodes(treeNode,[]);
            //是选中状态,加入到右侧ul
            if(treeNode.checked){
              //定义存储右侧li的数组
              var rightLiArray = [];
              $("#ulright li").each(function(i,v){
                rightLiArray.push($(v).attr("title"))
              })
              rightLiArray = rightLiArray.slice(1);
              //遍历勾选的数组集合
              for(var i=0;i<addnodesarray.length><span>"+addNodesArray[i]+"</span>");
                  addLi.animate({
                    width:"100%",
                    height:30
                  },400)
                  addLi.appendTo($("#ulright"));
                }
                //将节点背景颜色修改
                $("#treeDemo").find("a[title="+addNodesArray[i]+"]").css("backgroundColor","#00b6ba");
              }
            //是非选中状态,删除
            }else{
              //遍历节点,执行删除操作
              for(var i=0;i<addnodesarray.length var><p>backend php code 저는 순전히 프론트엔드이고 백엔드 코드는 간단하게만 작성할 수 있습니다.</p>
    <pre class="brush:php;toolbar:false"><?php $pId = $_POST[&#39;id&#39;];
    
    if($pId == 4){
      $array = array(&#39;{"name":"数据表_一","id":"1_1","pid":"0"}&#39;,&#39;{"name":"数据表_二","id":"1_2","pid":"0"}&#39;,&#39;{"name":"数据表_三","id":"1_3","pid":"0"}&#39;,&#39;{"name":"数据表_四","id":"1_4","pid":"0"}&#39;,&#39;{"name":"数据表_五","id":"1_5","pid":"0"}&#39;);
    }else if($pId == 1){
      $array = array(&#39;{"name":"测试表_一","id":"2_1","pid":"1"}&#39;,&#39;{"name":"测试表_二","connect":"测试表_一","id":"2_2","pid":"1"}&#39;,&#39;{"name":"测试表_三","id":"2_3","pid":"1"}&#39;,&#39;{"name":"测试表_四","id":"2_4","pid":"1"}&#39;,&#39;{"name":"测试表_五","id":"2_5","pid":"1"}&#39;);
    }else if($pId == 2){
      $array = array(&#39;{"name":"信息表_一","id":"3_1","pid":"3"}&#39;,&#39;{"name":"信息表_二","id":"3_2","pid":"3"}&#39;,&#39;{"name":"信息表_三","id":"3_3","pid":"3"}&#39;,&#39;{"name":"信息表_四","id":"3_4","pid":"3"}&#39;,&#39;{"name":"信息表_五","id":"3_5","pid":"3"}&#39;,&#39;{"name":"信息表_五_一","id":"3_5_1","pid":"3_5"}&#39;,&#39;{"name":"信息表_五_二","id":"3_5_2","pid":"3_5"}&#39;,&#39;{"name":"信息表_三_一","id":"3_3_1","pid":"3_3"}&#39;,&#39;{"name":"信息表_三_二","id":"3_3_2","pid":"3_3"}&#39;,&#39;{"name":"信息表_三_三","id":"3_3_3","pid":"3_3"}&#39;);
    }else if($pId == 3){
      $array = array(&#39;{"name":"作废表_一","id":"4_1","pid":"3"}&#39;,&#39;{"name":"作废表_二","id":"4_2","pid":"3"}&#39;,&#39;{"name":"作废表_三","id":"4_3","pid":"3"}&#39;);
    }
    
    echo json_encode($array);

    대부분의 js 코드를 사용할 수 있습니다. 자세한 API는 공식 API 문서를 참조하세요.

    최종 밤나무 렌더링

    :

    상세 설명 예시 jQuery는 ztree를 사용하여 트리 테이블을 구현합니다

    jquery의 ztree는 마우스 오른쪽 버튼 클릭 수집 기능을 구현합니다

    jQuery에서 zTree 트리 플러그인 사용 공유

    위 내용은 zTree jQuery 트리 플러그인의 자세한 사용 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    자바 스크립트 행동 : 실제 예제 및 프로젝트자바 스크립트 행동 : 실제 예제 및 프로젝트Apr 19, 2025 am 12:13 AM

    실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

    JavaScript 및 웹 : 핵심 기능 및 사용 사례JavaScript 및 웹 : 핵심 기능 및 사용 사례Apr 18, 2025 am 12:19 AM

    웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

    JavaScript 엔진 이해 : 구현 세부 사항JavaScript 엔진 이해 : 구현 세부 사항Apr 17, 2025 am 12:05 AM

    보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

    Python vs. JavaScript : 학습 곡선 및 사용 편의성Python vs. JavaScript : 학습 곡선 및 사용 편의성Apr 16, 2025 am 12:12 AM

    Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

    Python vs. JavaScript : 커뮤니티, 라이브러리 및 리소스Python vs. JavaScript : 커뮤니티, 라이브러리 및 리소스Apr 15, 2025 am 12:16 AM

    Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

    C/C에서 JavaScript까지 : 모든 것이 어떻게 작동하는지C/C에서 JavaScript까지 : 모든 것이 어떻게 작동하는지Apr 14, 2025 am 12:05 AM

    C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

    JavaScript 엔진 : 구현 비교JavaScript 엔진 : 구현 비교Apr 13, 2025 am 12:05 AM

    각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

    브라우저 너머 : 실제 세계의 JavaScript브라우저 너머 : 실제 세계의 JavaScriptApr 12, 2025 am 12:06 AM

    실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

    See all articles

    핫 AI 도구

    Undresser.AI Undress

    Undresser.AI Undress

    사실적인 누드 사진을 만들기 위한 AI 기반 앱

    AI Clothes Remover

    AI Clothes Remover

    사진에서 옷을 제거하는 온라인 AI 도구입니다.

    Undress AI Tool

    Undress AI Tool

    무료로 이미지를 벗다

    Clothoff.io

    Clothoff.io

    AI 옷 제거제

    AI Hentai Generator

    AI Hentai Generator

    AI Hentai를 무료로 생성하십시오.

    뜨거운 도구

    SublimeText3 중국어 버전

    SublimeText3 중국어 버전

    중국어 버전, 사용하기 매우 쉽습니다.

    MinGW - Windows용 미니멀리스트 GNU

    MinGW - Windows용 미니멀리스트 GNU

    이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

    드림위버 CS6

    드림위버 CS6

    시각적 웹 개발 도구

    mPDF

    mPDF

    mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

    스튜디오 13.0.1 보내기

    스튜디오 13.0.1 보내기

    강력한 PHP 통합 개발 환경