vue自动获取焦点?
2020-01-12 13:56
169 查看
vue自动获取焦点?
最简单的即是,自定义指令的方法:
// 方法Vue.directive()创建,它有两个参数,一是自定义指令的名字,可以随便取,但是全部小写; // 另一个是一个对象,表示自定义指令的一些配置项 // 创建一个名为 myfocus 的自定义指令,这里实际上创建了一个 v-myfocus 指令,元素中也使用 v-myfocus // 全局获取焦点 Vue.directive('myfocus', { inserted(el, binding){ // inserted 是钩子函数,它表示自定义指令插入到标签的时候就执行 // inserted()钩子函数有两个参数,el表示使用自定义指令的元素,binding表示自定义指令的信息 console.log(el); console.log(binding); el.focus() } }) // 局部获取焦点 directives:{ focus:{ inserted: el => { // 聚焦元素 el.focus() // el.querySelector('input').focus() // 实际项目中,可能出现获取不到 element ,这样可以使用 } } },
来个例子:
<script src="./vuejs/vue-2.4.0.js"></script> <body> <div id="app"> <!-- 引用自定义指令 v-mycolor --> 姓名: <input type="text" v-mycolor="fontColor"> </div> <script> // 创建一个名为 mycolor 的全局自定义指令。 Vue.directive('mycolor', { inserted(el, binding) { console.log(binding); el.style.color = binding.value } }) // 实例监管区域 var vm = new Vue({ el: '#app', data: { fontColor: 'red',// 在data中定义一个变量 }, directives: { // 注册一个局部的自定义指令 v-focus focus: { // 指令的定义 inserted: el => { // 聚焦元素 el.focus() } } } }) </script>
有时候我们项目中,可能遇到一些”另类需求“,比如点击input跳转到查询页,但是你点击的那个input,要求禁止?获取焦点(相当于假的似的,图片??哈哈)。大多数我们用的组件,里面人家已经设置好了 disabled — 禁止获取焦点。但是,vue常用的mintUI组件库中,人家并没有设置 disabled 属性,很烦!!!
解决方法:原生
this.$refs.search.$el.querySelector('input').setAttribute('disabled', true)
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- vue自动获取焦点指令
- vue 自定义指令自动获取文本框焦点的方法
- vue 自定义指令自动获取文本框焦点
- vue移动端input,自动获取焦点+滑动列表隐藏软键盘+点击搜索隐藏软键盘
- EditText获取焦点不自动弹出键盘设置
- 【转】EditText获取焦点不自动弹出键盘设置--失去焦点的方法,不错
- Android 如何让EditText不自动获取焦点
- JQuery下focus()无法自动获取焦点的处理方法 jquery如何使文本框获得焦点
- Web前端-JS效果-图片自动获取焦点与切换
- 解决初始界面后EditText自动获取焦点 弹出软键盘
- Flex编程注意之自动获取焦点、监听全局键盘事件
- Android:让EditText不自动获取焦点
- 进入页面editText会自动获取焦点,弹出键盘,如何解决?
- Flex 自动获取焦点 监听全局键盘事件
- Android 如何让EditText不自动获取焦点
- Flex组件自动获取输入焦点
- Android 如何让EditText不自动获取焦点
- Android 如何让EditText不自动获取焦点 在项目中,一进入一个页面, EditText默认就会自动获取焦点。 那么如何取消这个默认行为呢? 在网上找了好久,有点 监听软键盘事件
- android中去掉EditText的自动焦点获取
- Android 如何让EditText不自动获取焦点