场景
有一个input输入框,其绑定了blur事件
有一个保存按钮,其绑定了click事件
blur事件触发input的值存储到变量中,点击保存按钮click事件,将变量提交
导致
点击保存按钮时,先出发blur事件,然后在触发click事件,
某种情况下会仅仅触发blur事件,不触发click事件
解决方案
将click事件改为mousedown事件,并在事件方法里设定一个定时器,这样会先触发click事件,然后在触发blur事件
mousedown.native + setTimeout(()=>{}, 0)
<el-input v-model="value" size="mini" @blur="blur"></el-input>
<el-button size="small" type="primary" @mousedown.native="saveBtn">保存</el-button>
saveBtn(){
setTimeout(() => {
// do something
}, 0);
}
网友评论