摘要:我到現(xiàn)在也沒有搞明白這是為什么,猜測(cè)了一下是存才一個(gè)全局變量,當(dāng)我們第一次使獲得焦點(diǎn)以后改變了這個(gè)預(yù)設(shè)變量的值,在失去焦點(diǎn)的時(shí)候并沒有將這個(gè)值重置,所以導(dǎo)致了后面的問題。廢話不多說,下面是當(dāng)同時(shí)使用和的時(shí)候的解決方案。
在制作項(xiàng)目的時(shí)候遇到一個(gè)需求,點(diǎn)擊一個(gè)按鈕彈出一個(gè)input輸入框,并讓輸入框獲得焦點(diǎn),項(xiàng)目中引用了element-ui
在網(wǎng)上查找了很多方法,
但是在實(shí)際使用中發(fā)現(xiàn)了一個(gè)問題
無論是使用$ref獲取input元素然后使用focus方法
還是使用餓了么組件自帶的autoFocus
都只有在第一次點(diǎn)擊按鈕的時(shí)候可以讓Input獲得焦點(diǎn),在不刷新頁面的情況下,第二次以后的按鈕點(diǎn)擊都不會(huì)讓Input獲得焦點(diǎn)。我到現(xiàn)在也沒有搞明白這是為什么,猜測(cè)了一下是存才一個(gè)全局變量,當(dāng)我們第一次使Input獲得焦點(diǎn)以后改變了這個(gè)預(yù)設(shè)變量的值,在Input失去焦點(diǎn)的時(shí)候并沒有將這個(gè)值重置,所以導(dǎo)致了后面的問題。
廢話不多說,
Vue本身提供了自定義指令的方法
// 注冊(cè)一個(gè)全局自定義指令 `v-focus` Vue.directive("focus", function (el) { el.focus() })
這樣使我們?cè)诮M件中可以自用的調(diào)用v-focus方法,給他綁定定義布爾變量來控制元素是否獲得焦點(diǎn)
但是這里要注意的是組件
所以我們要在
在自定義指令中獲取組件下通過querySelector()方法獲取input元素
Vue.directive("focus", function (el) { el.querySelector("input").focus() })
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/93957.html
摘要:案例持續(xù)觸發(fā)事件時(shí),并不立即執(zhí)行函數(shù),當(dāng)毫秒內(nèi)沒有觸發(fā)事件時(shí),才會(huì)延時(shí)觸發(fā)一次函數(shù)。也以函數(shù)形式暴露普通插槽。這樣的場(chǎng)景組件用函數(shù)式組件是非常方便的。相關(guān)閱讀函數(shù)式組件自定義指令前言 有echarts使用經(jīng)驗(yàn)的同學(xué)可能遇到過這樣的場(chǎng)景,在window.onresize事件回調(diào)里觸發(fā)echartsBox.resize()方法來達(dá)到重繪的目的,resize事件是連續(xù)觸發(fā)的這意味著echarts...
摘要:小白的全棧開發(fā)一簡(jiǎn)介從新手的角度對(duì)有了解,對(duì)和有了解。希望能夠幫助和我一樣是全棧小白的你看過很多關(guān)于怎么搭建全棧的文章,部分可能有借鑒。因?yàn)橐约邯?dú)立完成,所以開始自己的全棧之旅。分享出來我的全棧經(jīng)歷,并記錄我的畢設(shè)進(jìn)度逃。 小白的全棧開發(fā) 一 簡(jiǎn)介 從新手的角度(對(duì)vue有了解,對(duì)Koa和Express有了解。)從0開始搭建一個(gè)通過RESTful API提供數(shù)據(jù),vue組成的單頁面的...
摘要:的中使用包裹想要插入的,或者等元素,綁定一個(gè)的數(shù)組對(duì)象,在或者等元素使用,為該在綁定數(shù)組對(duì)象的對(duì)應(yīng)屬性這樣就可以實(shí)現(xiàn)每一行的數(shù)據(jù)分別存儲(chǔ)在綁定數(shù)組對(duì)象的不同下標(biāo)數(shù)組中。新增一列時(shí),只需要讓綁定數(shù)組對(duì)象一個(gè)與先前屬性一致的空對(duì)象進(jìn)去。element的table中使用 包裹想要插入的input,或者select等HTML元素,綁定一個(gè)的數(shù)組對(duì)象,在input或者select等HTML元...
摘要:基于封裝的表單渲染器,完整繼承了的屬性定義,并進(jìn)行了簡(jiǎn)單擴(kuò)展,從而用戶能夠通過使用一段預(yù)設(shè)的數(shù)據(jù)渲染出一個(gè)完整的表單。設(shè)置為可禁用所有原子表單。獲取當(dāng)前表單的值。 基于 element-ui 封裝的表單渲染器,完整繼承了 element 的屬性定義,并進(jìn)行了簡(jiǎn)單擴(kuò)展,從而用戶能夠通過使用一段預(yù)設(shè)的數(shù)據(jù)渲染出一個(gè)完整的 element 表單。 演示地址 項(xiàng)目地址 Usage // S...
摘要:近段時(shí)間常使用開發(fā),寫點(diǎn)記錄,避免時(shí)間久之忘了。安裝教程查看是否已安裝,在中輸入若已安裝則輸出版本號(hào)。繼承報(bào)錯(cuò)可能是文件路徑問題。當(dāng)和繼承的不同時(shí)在文件夾內(nèi)外的話,會(huì)出現(xiàn)該錯(cuò)誤。 近段時(shí)間常使用vue-cli開發(fā),寫點(diǎn)記錄,避免時(shí)間久之忘了。 環(huán)境 1. nodejs vue-cli開發(fā)基于nodejs環(huán)境,確保開發(fā)的環(huán)境中已安裝了nodejs?! “惭b教程 https://www....
閱讀 1129·2021-09-13 10:29
閱讀 3447·2019-08-29 18:31
閱讀 2718·2019-08-29 11:15
閱讀 3071·2019-08-26 13:25
閱讀 1453·2019-08-26 12:00
閱讀 2470·2019-08-26 11:41
閱讀 3560·2019-08-26 10:31
閱讀 1557·2019-08-26 10:25