vue中blur事件不生效
时间: 2024-10-24 16:13:09 浏览: 15
vue 表单输入框不支持focus及blur事件的解决方案
在Vue中,有时候会出现blur事件不生效的问题。这可能是由于事件绑定的问题导致的。可以尝试使用native和capture来让blur事件生效。具体来说,可以在元素上添加@blur.capture.native="handleBlur"来绑定事件。此外,还有一种常见的问题是关于row,在@blur延迟的问题。可以使用js中的sleep延迟来解决这个问题。代码示例如下:
```
sleep(time) {
return new Promise(resolve => setTimeout(resolve, time));
},
handleBlur(row) {
this.sleep(100).then(() => {
console.log('handleBlur', row.columnsCode.length);
if(!Named.checkAttrCodeNum(row.columnsCode.length)) this.$refs.type.focus()
})
}
```
另外,还有一种可能的原因是在Vue中,div默认不触发事件,除非将元素添加tabindex="-1"属性才会触发blur事件。因此,如果你的元素是div,可以尝试添加tabindex属性来解决问题。
阅读全文