环境:vue+fastclick
问题:在移动端输入框,需要点着输入框很多次,才能将输入框focus;或者长按输入框、或者双击输入框。
网络上,都是定位到fastclick,给出的解决办法是覆盖掉fastclick的focus函数,但是,在我的项目中,
fastclick是被公共base.js引入的,不能修改,并且也没有挂载到window,所以无法使用该方法。
在此提供另外一种思路:
给input的外层元素,添加点击事件,在点击事件中,使用nextTick,在其中执行对应input的focus方法。
<div class="item" @click.stop.prevent="inputPaentClick('input1')">
<input ref="input1" />
</div>
inputPaentClick(refName) {
this.$nextTick(() => {
this.$refs[refName] && this.$refs[refName].focus();
});
}