js元素聚焦(vue)

元素聚焦

其实聚焦本质上还是调用js的原生方法focus(),也就是说如果你想要某个DOM节点聚焦,只需要它调用这个方法就可以

需求

当弹窗打开时,自动聚焦到input输入框。
看似很简单,但是有两个容易出问题的地方:
一、聚焦的时机
当弹窗的开关变量为true时,你让相应的元素聚焦,但此时可能弹窗并没有渲染完成
二、聚焦的元素
当你使用第三方组件的Input输入框时,你为这个输入框标记了ref,但是获取到的是这个组件,而并不是组件中的input
而你使用原生的input元素则不会有这个问题

代码

iView弹窗和输入框

<Modal v-model="modalFocus">
 <Input type="text" ref="inputFocus" :autofocus="true" v-model="inputValue" ></Input>
</Modal>
data () {
    return {        
        modalFocus: false,
        inputValue: '',
    }
},
watch: {
    modalFocus (val) {        
        if (val) {
            this.$nextTick(() => {                
                this.$refs.inputFocus.$el.children[1].focus()
            })
        }
    },
},

网站导航

网站导航

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 您将在本文当中了解到,往网页中添加数据,从传统的dom操作过渡到数据层操作,实现同一个目标,两种不同的方式....
    itclanCoder阅读 25,915评论 1 12
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,081评论 0 29
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,251评论 4 61
  • 2018-5-7 亲爱的儿子,写作业时你说:妈妈,我今天英语默写全对,今晚没有英语作业了。恩,只要用心一点,作业就...
    美丽心情_a8bf阅读 258评论 1 3
  • 很久很久以前我就觉得要分手了 因为我们不是一路人 老师的孩子总是精英教育 而我只要能混混日子就好 原来的计划是我写...
    裴陟玉阅读 182评论 0 0