首页 > 其他分享 >vue指令实现input自动聚焦

vue指令实现input自动聚焦

时间:2023-11-10 18:11:05浏览次数:43  
标签:el vue textArea 标签 聚焦 inp Vue input

vue指令实现自动聚焦

代码如下:

AutoFocus.js

import Vue from 'vue'
// 插件对象(必须有install方法, 才可以注入到Vue.use中)
export default {
  install () {
    Vue.directive('fofo', {
      inserted (el) {
        fn(el)
      },
      update (el) {
        fn(el)
      }
    })
  }
}
function fn (el) {
  if (el.nodeName === 'INPUT' || el.nodeName === 'TEXTAREA') {
    // 如果直接是input标签/textarea标签
    el.focus()
  } else {
    // 指令在van-search组件身上, 获取的是组件根标签div, 而input在标签内
    const inp = el.querySelector('input')
    const textArea = el.querySelector('textarea')
    // 如果找到了
    if (inp || textArea) {
      inp && inp.focus()
      textArea && textArea.focus()
    } else {
      // 本身也不是, 子标签里也没有
      console.error('请把v-fofo用在输入框标签上')
    }
  }
}

main.js中配置

import directive from '../directives/AutoFocus'
Vue.use(directive)
用法
 <el-input
            placeholder="请输入内容"
            v-model="input1"
            v-fofo
            clearable>
</el-input>

标签:el,vue,textArea,标签,聚焦,inp,Vue,input
From: https://www.cnblogs.com/albertshine/p/17824758.html

相关文章

  • Vue中网络图片懒加载工具
    在滑动列表视图中如果有网络图片需要加载直接给imag标签赋值src,会造成没有显示的item中图片也直接加载,势必浪费网络资源。创建一个插件,让列表中的item出显的时候在加载图片从而减少网络请求。具体方法就是给img标签添加一个新的属性暂时先保存对应的url,当item滑动出现到一定值时......
  • 【开源】基于Vue.js的社区买菜系统的设计和实现
    一、摘要1.1项目介绍基于Vue+SpringBoot+MySQL的社区买菜系统包含菜品分类模块、菜品档案模块、菜品订单模块、菜品收藏模块、收货地址模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,社区买菜系统基于角色的......
  • 【开源】基于Vue.js的音乐偏好度推荐系统的设计和实现
    一、摘要1.1项目介绍基于Vue+SpringBoot+MySQL的音乐偏好度推荐系统,包含了音乐档案模块、我的喜爱配置模块、每日推荐模块和通知公告模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,音乐偏好度推荐系统基于......
  • Vue3(开发h5适配)
    在开发移动端的时候需要适配各种机型,有大的,有小的,我们需要一套代码,在不同的分辨率适应各种机型。因此我们需要设置meta标签<metaname="viewport"content="width=device-width,initial-scale=1.0">移动设备具有各种不同的屏幕尺寸和分辨率,例如智能手机和平板电脑。为了提供更好的......
  • 深入探讨Vue.js核心技术及uni-app跨平台开发实践
    Vue.js是一款流行的JavaScript框架,用于构建交互性强、响应式的用户界面。而uni-app是一个基于Vue.js的跨平台应用开发框架,允许开发者使用Vue.js的语法编写一次代码,然后将其部署到多个平台,如iOS、Android、Web等。本文将深入探讨Vue.js的核心技术,并介绍如何利用uni-app进行跨平台实......
  • vue-cli-service vue.config.js配置 productionSourceMap与webpack中的devtool 关联详
    https://webpack.js.org/configuration/devtool/https://cli.vuejs.org/zh/config/#productionsourcemap https://github.com/vuejs/vue-cli/blob/f0f254e4bc81ed322eeb9f7de346e987e845068e/packages/%40vue/cli-service/lib/config/prod.js#L7 可以在源码中看到if(pro......
  • 无涯教程-批处理 - Batch Files – Inputs函数
    运行批处理文件时,它使您可以选择传递命令行参数,然后可以在程序中读取它们以进行进一步处理,可以使用%运算符以及参数的数字位置从程序中调用批处理文件参数,以下是定义命令行参数的方式。%0是所调用的程序名称。%1是第一个命令行参数。%2是第二个命令行参数。等到%9。让无涯教程看......
  • Vue3 路由查询参数更新后,执行更新方法
    import{ref,defineComponent,watch,getCurrentInstance}from"vue";import{useRoute}from'vue-router';exportdefaultdefineComponent({setup(){consttable=ref({key:'spec_id',......
  • vue+css实现的伪3d旋转罐+液位动态变化
    话不多说先看效果:设计思路:罐是做了三个位置(中=>左,左=>右,右=>中)的动画效果,每个罐轮流使用一次,来实现旋转的效果。中间的光亮做了个变形延迟。罐的透明效果是使用了三层,即最底层是粒子不透明图片,中层是液体组件,最上层是罐体png图片。都是用了绝对定位,请务必设置好位置。液体组......
  • Vue中 name 有什么作用?data 为什么是函数而不是对象?
    Vue中name有什么作用?项目使用keep-alive时,可搭配组件name进行缓存过滤DOM做递归组件时需要调用自身namevue-devtools调试工具里显示的组见名称是由vue中组件name决定的data为什么是函数而不是对象?组件中data是Vue的实例组件共享data属性,当......