zoukankan      html  css  js  c++  java
  • jquery树形结构

    <div class="tree_content">
            <div class="tree_node">
                <div class="div_inline"><input type="button" value="-" class="tree_node_toggle_button"></div>
                <div class="div_inline tree_node_parent">
                    <input type="checkbox" class="tree_node_parent_checkbox">父节点1
                    <div class="tree_node_child">
                        <input type="checkbox" class="tree_node_child_checkbox">子节点1<br>
                        <input type="checkbox" class="tree_node_child_checkbox">子节点2<br>
                        <input type="checkbox" class="tree_node_child_checkbox">子节点3<br>
                    </div>
                </div>
            </div>
            <div class="tree_node">
                <!-- 切换子目录隐藏或显示的按钮 -->
                <div class="div_inline"><input type="button" value="-" class="tree_node_toggle_button"></div>
                <div class="div_inline tree_node_parent">
                    <input type="checkbox" class="tree_node_parent_checkbox">父节点2
                    <div class="tree_node_child">
                        <input type="checkbox" class="tree_node_child_checkbox">子节点1<br>
                        <input type="checkbox" class="tree_node_child_checkbox">子节点2<br>
                        <input type="checkbox" class="tree_node_child_checkbox">子节点3<br>
                    </div>
                </div>
            </div>
            <div class="tree_node">
                <div class="div_inline"><input type="button" value="-" class="tree_node_toggle_button"></div>
                <div class="tree_node_parent div_inline">
                    <input type="checkbox" class="tree_node_parent_checkbox">父节点3
                    <div class="tree_node_child">
                        <input type="checkbox" class="tree_node_child_checkbox">子节点1<br>
                        <input type="checkbox" class="tree_node_child_checkbox">子节点2<br>
                        <input type="checkbox" class="tree_node_child_checkbox">子节点3<br>
                    </div>
                </div>
            </div>
        </div>
     .div_inline {
        display:inline;
    }
    /* 设置子节点属性 */
    .tree_node_child {
        margin-left:50px;
    }
    // 页面加载完成后调用
            $(function(){
                // 为所有的父节点添加点击事件
                $(".tree_node_parent_checkbox").click(function(){
                    // 获取父节点是否选中
                    var isChange = $(this).prop("checked");
                    if(isChange){ // 如果选中,则父节点下的所有的子节点都选中
                        // 获取当前checkbox节点的兄弟节点下的所有的checkbox子节点选中
                        $(this).next().find(".tree_node_child_checkbox").prop("checked", true);
                    }else{ // 未选中,取消全选
                        // 获取当前checkbox节点的兄弟节点下的所有的checkbox子节点选中
                        $(this).next().find(".tree_node_child_checkbox").removeAttr("checked");
                    }
                });
                // 为所有的子节点添加点击事件
                $(".tree_node_child_checkbox").click(function () {
                    // 获取选中的节点的父节点下的所有子节点选中的数量
                    var length = $(this).parent().find(".tree_node_child_checkbox:checked").length;
                    // 判断当前结点是否选中
                    if($(this).prop("checked")){ // 选中
                        // 如果当前节点选中后,所有的选中节点数量1,选中父节点
                        if(length == 1){
                            // 选中父节点
                            $(this).parent().prev().prop("checked", true);
                        }
                    }else{ // 节点未选中
                        if(length == 0){
                            // 取消父节点的选中状态
                            $(this).parent().prev().removeAttr("checked");
                        }
                    }
                });
    
                // 为所有的切换按钮添加点击事件
                $(".tree_node_toggle_button").click(function () {
                    // 获取需要隐藏或显示的节点
                    var $toggle_node = $(this).parent().next().find(".tree_node_child");
                    $toggle_node.toggle(); // 切换隐藏或显示
                    // 切换按钮的显示
                    if($toggle_node.is(":visible")){
                        $(this).val("-");
                    }else{
                        $(this).val("+");
                    }
                });
            });
  • 相关阅读:
    java并发编程 线程间协作
    博客园添加目录,导航,回到顶部
    汉诺塔递归实现
    java并发编程 线程基础
    Flink中算子进行Chain的规则分析(最新代码,源码版本大于1.11.2)
    Flink流处理程序在Local模式下的运行流程源码分析
    Flink-DataStream流处理应用(Local模式下)运行流程-源码分析
    Flink Streaming基于滚动窗口的事件时间分析
    Spark-2.3.2 Java SparkSQL的自定义HBase数据源
    Spark-2.3.2 HBase BulkLoad
  • 原文地址:https://www.cnblogs.com/phpfensi/p/7298635.html
Copyright © 2011-2022 走看看