Showing
1 changed file
with
23 additions
and
0 deletions
... | ... | @@ -99,6 +99,29 @@ const FormSelectMain: React.FC<FormSelectProps>= (props)=> { |
99 | 99 | } |
100 | 100 | }, [JSON.stringify(value), JSON.stringify(options)]); |
101 | 101 | |
102 | + // 用来监听页面点击关闭选择框 | |
103 | + useEffect(() => { | |
104 | + const controlVisible= (e: MouseEvent)=> { | |
105 | + if(state.modalVisible) return | |
106 | + let selectBox = document.getElementsByClassName('qx-form-select'); // 这个是自己的区域 | |
107 | + let flag = false; | |
108 | + Array.prototype.forEach.call(selectBox, function (element) { | |
109 | + if(element.contains(e.target)) { | |
110 | + flag = true; | |
111 | + } | |
112 | + }); | |
113 | + if (!flag) { | |
114 | + inputSelectRef.current?.closeDropdown(); | |
115 | + } | |
116 | + } | |
117 | + // 监听页面点击关闭操作 | |
118 | + document.addEventListener('click', controlVisible); | |
119 | + | |
120 | + return () => { | |
121 | + document.removeEventListener('click', controlVisible) | |
122 | + } | |
123 | + }, []); | |
124 | + | |
102 | 125 | |
103 | 126 | return ( |
104 | 127 | <div className={cls(prefix, className)}> | ... | ... |