ts: 写自定义指令的时候,提示:类型“HTMLElement”上不存在属性“disabled”
原因:默认源码中关于指令的el声明的是HTMLElement类型,但是该类型是没有disabled属性的。解决如下:// db-click.tsimport { DirectiveOptions } from 'vue'// To prevent the double click on the button, you can use this directive like: v-dbClick.i
·
原因:默认源码中关于指令的el声明的是HTMLElement类型,但是该类型是没有disabled属性的。
解决如下:
// db-click.ts
import { DirectiveOptions } from 'vue'
// To prevent the double click on the button, you can use this directive like: v-dbClick.
interface HTMLElementPlus extends HTMLElement {
disabled?: boolean
}
export const dbClick: DirectiveOptions = {
bind(el: HTMLElementPlus) {
el.addEventListener('click', e => {
console.log(e)
if (!el.disabled) {
el.disabled = true
el.style.cursor = 'not-allowed'
setTimeout(() => {
el.style.cursor = 'pointer'
el.disabled = false
}, 1500) // 1500毫秒
}
})
}
}
更多推荐
已为社区贡献16条内容
所有评论(0)