layui弹出层点击多次弹出问题

 这个问题其实很好解决,只需要一个变量标记一下,这个页面是处于有弹出层还是处于没有弹出层的时候,首先设置一个变量flag = true;在点击触发事件的按钮之后,只有flag为true的时候才弹出,弹出成功之后将flag赋值为false并进行相关的逻辑,在点击右上角关闭按钮时,有一个回调函数 cancel,在这个回调函数中将flag的值赋值为true,那么在关闭弹出层之后又可以点击弹出,这样就做到了页面上面只能弹出一个弹出层,防止了多次弹出的问题。

这里,附上代码:

var flag = true;
        $(document).on('click','#adminprogram-addproblem',function(){
            if(flag){
                flag = false;
                admin.req({
                    url: ,
                    data: {},
                    done: function(res){
                        layui.use(['laytpl', 'layer'], function(){
                            var laytpl = layui.laytpl;
                            var layer = layui.layer;
                            laytpl($('#LAY-themeducation-adminprogram-qstproblem-tpl').html()).render(res, function(html){
                                layer.open({
                                    type:1,
                                    title: '列表',
                                    area: ['730px','600px'],
                                    content: html,
                                    success: function () {
                                        table.render({
                                            elem: '#chooseproblem'
                                            ,url:
                                            ,id:'chooseproblem'
                                            ,cols: [[
                                                {field:'',title: '选择',width:100,templet: '#problem-tpl'}
                                                ,{field:'ptitle',title: '问题标题',width:150}
                                                ,{field:'type',title: '问题类型',width:120}
                                                ,{field:'score',title: '初始积分',width:120}
                                                ,{field:'yxnum',title: '已选次数',width:120}
                                                ,{field:'pimgurl',title: '图片',templet:'#tpimgurl',width:110}
                                            ]]
                                        });
                                    },
                                    cancel: function () {
                                        flag = true;
                                    }
                                });
                            });
                        });
                    }
                });
            }
        });

 

### Java二叉搜索树数据结构 #### 1. 定义与特性 二叉搜索树(Binary Search Tree, BST),亦称为二叉排序树,在Java编程环境中具有重要地位。这种特定类型的二叉树拥有如下属性:对于任意节点而言,其左子树上的所有键值均小于该节点的键值;同理,右子树上的所有键值皆大于此节点的键值;并且左右子树同样遵循上述规则[^3]。 #### 2. 基本操作实现 为了更好地理解如何在Java中构建并运用二叉搜索树,下面给出了一段用于创建BST类及其核心功能——查找方法的具体代码实例: ```java class Node { int key; Node left, right; public Node(int item) { key = item; left = right = null; } } public class BinarySearchTree { private Node root; // 插入新节点的方法 void insert(int key) { root = insertRec(root, key); } /* A recursive function to insert a new key in BST */ Node insertRec(Node root, int key) { /* If the tree is empty, return a new node */ if (root == null) { root = new Node(key); return root; } /* Otherwise, recur down the tree */ if (key < root.key) root.left = insertRec(root.left, key); else if (key > root.key) root.right = insertRec(root.right, key); /* Return the unchanged root pointer */ return root; } boolean search(int key) { return searchRec(root, key); } // Recursive method for searching keys within the binary search tree. boolean searchRec(Node root, int key) { // Base cases: root is null or key is present at root if (root==null || root.key==key) return root != null; // Key is greater than root's key if (root.key < key) return searchRec(root.right,key); // Key is smaller than root's key return searchRec(root.left,key); } } ``` 这段代码展示了怎样定义一个简单的`Node`类来表示单个节点,并通过递归方式实现了向二叉搜索树中插入新元素的功能以及基于比较逻辑执行查找任务的过程[^1]。 #### 3. 应用领域 除了作为基础数据结构外,二叉搜索树还在多个高级应用场景里扮演着不可或缺的角色。例如,在Java集合框架内,像`TreeMap`和`TreeSet`这样的容器实际上是借助红黑树这一种经过优化后的二叉搜索树形式得以高效运作的。这类改进型二叉搜索树不仅继承了传统BST的优点,还额外引入了一些机制以确保整体高度保持相对较低水平,从而提高了查询效率[^2]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值