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)}> | ... | ... |