输入框点击下滑Ztree菜单
记录一个功能实现代码,我这边前端用的是layui,需要实现的效果如下:

需求:当点击选择地区的时候会出现如上图的下拉菜单。
分析:首先肯定给这个输入框加监听,click方法,然后将ztree的div显示,这里的重点应该是怎么设计这个ztree使其能够显示在输入框的下面显示。这部分的代码也是在网上找到的。
实现步骤:
①:输入框和ztree的div代码
<div class="layui-input-inline">
<input type="text" name="busArea" id="busArea" lay-verify="required" placeholder="请选择地区" autocomplete="off" class="layui-input">
</div>
<div id="treeDiv" style="position: absolute; display: none; width: 190px; height: 300px; z-index: 9999; background-color: #F7F7F7; overflow: auto">
<ul id="mytree" class="ztree"></ul>
</div>
②:点击事件以及加载ztree的方法(数据是使用ajax从后端调的)
$().ready(function() {
var divTree = $("#treeDiv");
$("#busArea").click(function() {
var x = $(this).offset().left + 0;
var y = $(this).offset().top + 40;
divTree.css({
left : x + "px",
top : y + "px"
});
divTree.slideDown("slow");// 滑动方式显示元素
});
divTree.hover(function() {
}, function() {
divTree.slideUp("slow");// 滑动方式隐藏元素
});
GetTree();
});
function GetTree() {
$.ajax({
type : "POST",
dataType : "json",
url : "xxxxxxxxxxxxxxxx",
async : false,
success : function(data) {
zTree = $.fn.zTree.init($("#mytree"), setting, data);
//展开所有节点
zTree.expandAll(zTree);
},
error : function(error) {
layer.msg('系统错误!', {
icon : 2,
time : 1500
})
}
});
}
ztree初始化配置代码就不贴了,和正常的写法一样。
update at 2018-12-24
此处有个小问题需要优化一下,这里设置的是鼠标离开下拉菜单再进行过隐藏,如果鼠标没进入下拉菜单的话就不会隐藏,这样的用户体验不好,解决方案如下:
1.我们可以给输入框加上onblur失去焦点事件监听(当然这里也可以加上鼠标离开输入框的事件mouseleave()看自己认为哪个更合适)
<input type="text" name="busArea" id="busArea" lay-verify="required" placeholder="请选择地区" autocomplete="off" class="layui-input" onblur="leaveText()">
2.设置全局变量 ifNeedClose 如果鼠标进入下拉选,就把这个变量赋值
var ifNeedClose;
divTree.hover(function() {
// 鼠标在下拉菜单中,不需要关闭菜单
ifNeedClose = false;
}, function() {
// 鼠标离开下拉菜单,需要关闭
ifNeedClose = true;
divTree.slideUp("slow");// 滑动方式隐藏元素
});
3.在onblur方法中判断2中设置的变量,根据变量的值判断是否需要隐藏下拉菜单
functtion leaveText() {
// 如果不是不需要关闭,那就关闭菜单
if(ifNeedClose != false) {
divTree.slideUp("slow");
}
}
4.这样设置完毕,就可以解决这个问题了.
输入框点击下滑Ztree菜单的更多相关文章
- java Swing 如何添加点击可展开菜单控件( JMenuBar如何使用?)
准备: JMenuBar 点击可展开控件本体 JMenu 点击可展开控件中的一级菜单 JMenuItem 点击可展开控件中的二级菜单 JFrame 程序运行时弹出的那个框框 这是一个使用点击可展开菜 ...
- js点击出现二级菜单,点击二级菜单主菜单换成二级菜单
点击出现二级菜单 *{ margin:0px auto; padding:0px; } .yiji{ width:200px; height:40px; background-color:red; c ...
- jQuery - 制作点击显示二级菜单效果
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- fastclick使用与 fastclick ios11.3相关bug原因(ios输入框点击变得不灵敏,ios input失焦后,页面上移,点击不了)
FastClick 移动设备上的浏览器默认会在用户点击屏幕大约延迟300毫秒后才会触发点击事件,这是为了检查用户是否在做双击.为了能够立即响应用户的点击事件,就有了FastClick. 安装fastc ...
- PHP+Mysql+easyui点击左侧tree菜单对应表名右侧动态生成datagrid加载表单数据(二)
关于tree菜单生成,参考我的另一篇博文地址tree 菜单 实现功能:点击左侧tree菜单中的table,右侧通过datagrid加载出该表对用的所有数据 难点:获取该表的所有列名,动态生成datag ...
- 鼠标右键点击弹出菜单(jQuery)
禁用浏览器默认事件,此处是兼容写法 $(document).contextmenu(function (e) { var event = e || window.event; if (event.pr ...
- jquery实现input输入框点击加减数值随之变动
<input class="addBtn min" type="button" value="-" /><input cl ...
- element-ui 框架中使用 NavMenu 导航菜单组件时,点击一个子菜单会出现多个子菜单同时展开或折叠?
我在使用 elment-ui 框架的导航组件时,直接粘贴复制了官网上 (http://element-ui.cn/#/zh-CN/component/menu)的例子不会出错,但是当我将他们转化为动态 ...
- 常见input输入框 点击 发光白色外阴影 focus
先看看具体实现的效果 第一就是点击input 实现的效果 默认谷歌点击input是蓝色边框 去掉用outline:0; 实现效果用focus 默认状态的边框颜色一般较重 如border:1px s ...
随机推荐
- exynos 4412 时钟配置
/** ****************************************************************************** * @author Maox ...
- oracle-扫盲贴:存储过程实现增删改查
原文引入:http://blog.csdn.net/yangzhawen/article/details/8617179 oracle-扫盲贴:存储过程实现增删改查 分类: oracle2013-02 ...
- codeforces 963B Destruction of a Tree
B. Destruction of a Tree time limit per test 1 second memory limit per test 256 megabytes input stan ...
- attr 和 prop的区别和使用
一. attr和prop的区别 要想弄清楚attr和prop的区别,就要先搞清楚js中使用DOM方法获取设置属性和使用对象方法获取设置属性的区别. 在javascript中使用DOM方法设置获取属性值 ...
- PCB 帆软FineReport安装,布署,配置
公司使用帆软FineReport做为报表平台工具也有一年多时间,而FineReport报表平台与Tomcat Web应用服务是站队在java阵营里,因为相信拥抱微软;.net未来发展会越来越好,所以对 ...
- 基于Linux系统的Shell编程-基础篇
1. Shell基础介绍 1.1 Shell编程的意义 为什么使用shell编程 节约时间 1.2 显示脚本执行过程 前面有+表示执行过的命令的 前面没有东西,表示输出到屏幕上的内容. [root@C ...
- recast 生成navmesh主要流程
参考: critterai http://www.critterai.org recast & Detour https://github.com/recastnavig ...
- P2597 [ZJOI2012]灾难(倍增LCA+拓扑排序)
传送门 据大佬说这玩意儿好像叫灾难树还是灭绝树? 我们先按建图,设点$u$的食物有$x[1]...x[k]$,即在图中这些点都有一条指向它的边 以样例来说,对于人,羊和牛都有一条指向它的边,然而不管是 ...
- HDU 5514 欧拉函数应用
前置技能: <=i且与i互质的数的和是phi(i)*i/2 思路: 显然每个人的步数是gcd(a[i],m) 把m的所有因数预处理出来 1~m-1中的每个数 只会被gcd(m,i)筛掉一遍 // ...
- 【SpringMVC框架】非注解的处理器映射器和适配器
参考来源: http://blog.csdn.net/acmman/article/details/46968939 处理器映射器就是根据URL来找Handler,处理器适配器就是按照它要求的 ...