uniApp focus的坑(解决)

  • 需求:实现光标的跳转
  • 问题1:uniApp不支持自定义指令,因此无法使用v-focus
  • 问题2:通过改变focus属性无反应
  • 进阶:提取获取焦点的公共方法
    在这里插入图片描述
结构
<view class="focus">
		<view class="item">
			<p>first:</p>
			<input type="text" :focus="firstFocus" @confirm="firstConfirm"/>
		</view>
		<view class="item">
			<p>second:</p>
			<input type="text" :focus="secondFocus" @confirm="secondConfirm"/>
		</view>
</view>
data
data() {
	return {
		firstFocus:true,   // 控制第一个焦点,默认聚焦
		secondFocus:false,  // 控制第二个焦点
	}
},
实现
methods:{
		// 跳到第二个
		firstConfirm(){
			this.getFocus('secondFocus')
		},
		
		// 跳到第一个
		secondConfirm(){
			this.getFocus('firstFocus')
		},

	    // 获取焦点
		getFocus(nextfocus){
			this[nextfocus] = false     // 不能使用点语法
			this.$nextTick(()=>{
				this[nextfocus] = true
			})
		},
}
效果

在这里插入图片描述

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值