点击事件测试问题
来源:5-6 月份选择器进阶测试
qq_慕勒5016658
2020-08-04
关于日期下拉菜单的点击事件,我是在点击打开下拉菜单时才把点击监听事件挂上去,当点击其他区域的时候再把监听事件移除
所以导致eventMap.click为空
这种情况应该怎样再模拟点击之后再把监听事件挂上去?
toggleDropdown = (e) => {
e.preventDefault()
if ( !this.state.isOpen ) {
this.setState({
isOpen: true
})
// if the clicked element is not this element, then close the dropdown menu
document.addEventListener('mouseup', this.handleClikeOutSide)
} else {
this.closeComponent()
}
}
handleClikeOutSide = (e) => {
const onClickItem = e.target.className.includes('dropdown-item')
const onClickToggle = e.target.className.includes('dropdown-toggle')
if ( !onClickItem && !onClickToggle ) {
this.closeComponent()
}
}
closeComponent = () => {
this.setState({
isOpen: false
})
document.removeEventListener('mouseup', this.handleClikeOutSide)
this.props.onChange({year: this.state.selectedYear, month: this.state.selectedMonth})
}
写回答
1回答
-
张轩
2020-08-05
同学你好 请提供一下你的测试代码的写法 详细点比较好 我在本地跑一下 这样会更快的定位问题
00
相似问题