Vue使用el-input自動(dòng)獲取焦點(diǎn)和二次獲取焦點(diǎn)問(wèn)題及解決
使用el-input自動(dòng)獲取焦點(diǎn)和二次獲取焦點(diǎn)問(wèn)題
最近,碰到一個(gè)問(wèn)題,就是輸入框旁邊有一個(gè)編輯按鈕,點(diǎn)擊時(shí),才可以對(duì)輸入框進(jìn)行編輯:
要實(shí)現(xiàn)的效果:
為了方便輸入,需要自動(dòng)獲取焦點(diǎn),所以加入了autofocus,但是發(fā)現(xiàn),只有第一個(gè)并且第一次點(diǎn)擊才起作用。
查了網(wǎng)上的一些文檔,說(shuō)是跟dom的渲染順序和數(shù)據(jù)的緩存有點(diǎn)兒關(guān)系,至于深層次的原因,還沒(méi)查到。
然后使用了Vue提供的自定義指令來(lái)解決,還有一點(diǎn)兒需要注意,el-input在頁(yè)面渲染后,外層是個(gè)div,需要拿到里面的input才會(huì)有效果。
<el-input v-focus></el-input> directives: { // 注冊(cè)一個(gè)局部的自定義指令 v-focus focus: { // 指令的定義 inserted: function (el) { // 聚焦元素 el.querySelector('input').focus() } } },
還有一種解決方案,是使用 Vue.nextTick() 和 Ref去做,例子就不去寫了,都是去操作dom的。
使input和el-input自動(dòng)獲取焦點(diǎn)的處理
【普通input的自定義指令操作】:先在入口文件注冊(cè)一個(gè)全局自定義指令
// main.js Vue.directive('focus', { ? inserted (el, binding, vnode) { ? ? // 聚焦元素 ? ? el.focus() ? } })
【普通input的自定義指令使用】:v-"+指令名"
// index.vue <input v-focus placeholder="因?yàn)橛衯-focus,所以我聚焦了" />
【el-input的自定義指令操作】:先在入口文件注冊(cè)一個(gè)全局自定義指令
// main.js Vue.directive('fo', { ? inserted (el, binding, vnode) { ? ? // 聚焦元素 ? ? el.querySelector('input').focus() ? } })
【el-input的自定義指令使用】:v-"+指令名"
// index.vue <el-input v-fo placeholder="因?yàn)橛衯-fo,所以我聚焦了"></el-input>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue-quill-editor富文本編輯器簡(jiǎn)單使用方法
這篇文章主要為大家詳細(xì)介紹了vue-quill-editor富文本編輯器簡(jiǎn)單使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09echarts.js 動(dòng)態(tài)生成多個(gè)圖表 使用vue封裝組件操作
這篇文章主要介紹了echarts.js 動(dòng)態(tài)生成多個(gè)圖表 使用vue封裝組件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07Vue.set()實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)響應(yīng)的方法
這篇文章主要介紹了Vue.set()實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)響應(yīng)的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-02-02vant的Uploader?文件上傳,圖片數(shù)據(jù)回顯問(wèn)題
這篇文章主要介紹了vant的Uploader?文件上傳,圖片數(shù)據(jù)回顯問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10Vue+axios 實(shí)現(xiàn)http攔截及路由攔截實(shí)例
這篇文章主要介紹了Vue+axios 實(shí)現(xiàn)http攔截及路由攔截 ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04vue修改對(duì)象的屬性值后頁(yè)面不重新渲染的實(shí)例
今天小編就為大家分享一篇vue修改對(duì)象的屬性值后頁(yè)面不重新渲染的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08vue中同時(shí)監(jiān)聽多個(gè)參數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了vue中同時(shí)監(jiān)聽多個(gè)參數(shù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04vue3+vite加載本地js/json文件不能使用require淺析
這篇文章主要給大家介紹了關(guān)于vue3+vite加載本地js/json文件不能使用require的相關(guān)資料,require 是屬于 Webpack 的方法,在v3+vite的項(xiàng)目里面并不適用,需要的朋友可以參考下2023-07-07詳解vue組件化開發(fā)-vuex狀態(tài)管理庫(kù)
本篇文章主要介紹了詳解vue組件化開發(fā)-vuex狀態(tài)管理庫(kù),具有一定的參考價(jià)值,有興趣的可以了解一下。2017-04-04