Js实现类似时间控件,如何选择关闭事件??
本人做一个类似一个JS时间选择的控件,如部门选择效果是点击输入框后,在输入框下显示一个div,里面显示一个部门tree---到这里都实现了但是在关闭这个层时遇到了麻烦:1...
本人做一个类似一个JS时间选择的控件,如部门选择
效果是点击输入框后,在输入框下显示一个div,里面显示一个部门tree
--- 到这里都实现了
但是在关闭这个层时遇到了麻烦:
1. 通过鼠标移出该div时,隐藏 -- 这个没问题
2. 点击页面其他地方,隐藏该div,但不知该如何选择事件
曾采用输入框失去焦点时隐藏,但是在选择tree中内容时,输入框焦点失去,隐藏(这效果感觉很尴尬)
有什么方法能判断焦点不在该div内的方法吗? 或者有其他好的实现方法
回答好可以追加分,谢谢!!! 展开
效果是点击输入框后,在输入框下显示一个div,里面显示一个部门tree
--- 到这里都实现了
但是在关闭这个层时遇到了麻烦:
1. 通过鼠标移出该div时,隐藏 -- 这个没问题
2. 点击页面其他地方,隐藏该div,但不知该如何选择事件
曾采用输入框失去焦点时隐藏,但是在选择tree中内容时,输入框焦点失去,隐藏(这效果感觉很尴尬)
有什么方法能判断焦点不在该div内的方法吗? 或者有其他好的实现方法
回答好可以追加分,谢谢!!! 展开
展开全部
输入框失去焦点的时候,判断鼠标是否在div内。
设置一个全局变量。当鼠标在div上时候,变量设置一个值a。鼠标离开div时另一个值b。
具体做法是当失去焦点的时候开启一个setTimeout函数,在这个函数里面判断这个全局变量。
如果是是b就关闭,如果是a推出。
不知道理解不理解,感觉你能理解。
设置一个全局变量。当鼠标在div上时候,变量设置一个值a。鼠标离开div时另一个值b。
具体做法是当失去焦点的时候开启一个setTimeout函数,在这个函数里面判断这个全局变量。
如果是是b就关闭,如果是a推出。
不知道理解不理解,感觉你能理解。
追问
这个试过,不太理想:
当输入框获得焦点,div弹出后,鼠标位置在在输入框中,所以还得记录首次移动到div,才能继续
我期望的是在这个div外的任何位置点击鼠标,div就隐藏
就不知道使用哪个事件能判断鼠标的点击位置是在div之外
追答
body的onclick事件。一样做个延迟加载,在判断鼠标是否在div上,如果不在就关闭,在就不做什么。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询