實現功能:當input
輸入框聚焦的時候,顯示清除按鈕; 失焦的時候隱藏清除按鈕;點擊清除按鈕的時候,清空輸入。
javascript
相關代碼:html
<input v-model="phone" @focus="focus" @blur="blur"/> <div class="clear-icon" v-show="isClearPhoneShow" @click="clearFn"> <img src="@/assets/img/inline-closepng" alt="" /> </div>
// 清除輸入 clearFn() this.phone = '' }, // 聚焦 focus() { this.isClearPhoneShow = true } // 失焦 blur() { this.isClearPhoneShow = false }
這是由於blur
事件比click
事件先觸發,而javascript爲單線程,同一時間只能執行處理一個事件,因此當blur處理程序時,致使其後續click
事件並不會執行java
若是click
事件比blur
事件先觸發就沒有問題了,因此能夠給blur
事件延遲觸發this
// 失焦 blur() { setTimeout(() => { that.isClearPhoneShow = false }, 100) }
在這篇文章有提供其餘的方法,可供參考 https://www.jianshu.com/p/ad8...spa