手写select下拉菜单以外点击区域收起方法

****关键思路****
监听与移除事件+contains+ref

另外注意点:
removeEventListener跟addEventListener相对应,用于移除事件监听。
如果要进行移除事件,addEventListener() 的执行函数必须使用外部具名函数,匿名函数事件是无法移除的。

企业微信截图_60a537d3-401e-409e-aa1a-a3bd81b751d7.png

window.addEventListener('click',this.removeListen,false);
window.removeEventListener('click', this.removeListen,false);
removeListen=(e)=>{
//不包含在内的 this.state.show根据自己项目是否需要
if(!this.StComponent.contains(e.target)&&this.state.show){
this.setState({
show:false
})
}
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容