Js实现类似时间控件,如何选择关闭事件??

本人做一个类似一个JS时间选择的控件,如部门选择效果是点击输入框后,在输入框下显示一个div,里面显示一个部门tree---到这里都实现了但是在关闭这个层时遇到了麻烦:1... 本人做一个类似一个JS时间选择的控件,如部门选择
效果是点击输入框后,在输入框下显示一个div,里面显示一个部门tree
--- 到这里都实现了

但是在关闭这个层时遇到了麻烦:
1. 通过鼠标移出该div时,隐藏 -- 这个没问题
2. 点击页面其他地方,隐藏该div,但不知该如何选择事件
曾采用输入框失去焦点时隐藏,但是在选择tree中内容时,输入框焦点失去,隐藏(这效果感觉很尴尬)
有什么方法能判断焦点不在该div内的方法吗? 或者有其他好的实现方法

回答好可以追加分,谢谢!!!
展开
 我来答
乌微月2S
2012-12-18 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2889万
展开全部
输入框失去焦点的时候,判断鼠标是否在div内。
设置一个全局变量。当鼠标在div上时候,变量设置一个值a。鼠标离开div时另一个值b。
具体做法是当失去焦点的时候开启一个setTimeout函数,在这个函数里面判断这个全局变量。
如果是是b就关闭,如果是a推出。
不知道理解不理解,感觉你能理解。
追问
这个试过,不太理想:
当输入框获得焦点,div弹出后,鼠标位置在在输入框中,所以还得记录首次移动到div,才能继续

我期望的是在这个div外的任何位置点击鼠标,div就隐藏
就不知道使用哪个事件能判断鼠标的点击位置是在div之外
追答
body的onclick事件。一样做个延迟加载,在判断鼠标是否在div上,如果不在就关闭,在就不做什么。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式