场景:输入框绑定blur失焦事件,focus后点击按钮,触发了输入框的blur事件,但是按钮点击事件没有触发。
原因:blur失焦事件的优先级比click点击事件高。
解决方法:
1.都触发
blur事件里添加延时
blurEvent () {
setTimeout(() => {
//
}, 200)
}
2.不想触发blur,只触发click
(1)定义一个flag,click事件设置flag为true
(2)blur事件里添加延时,判断flag为true不执行
clickEvent () {
this.clickFlag = true
}
blurEvent () {
setTimeout(() => {
if (this.clickFlag) {
this.clickFlag = false
return
}
//
}, 200)
}