简介:如图循环需要的dom,通过点击事件将焦点聚焦在当前需要的input节点上。
html:(夹杂一些样式事件不需要可自行忽略)
<ul class="res_ul" id="res_ul">
<li :class="item.active?'active':''" v-for="item,index in resArr" @click="addDelStatus(item,index)">
<span style="display: inline-block;width: 40px;text-align: center ">{{index+1}}</span>
<input v-if="item.type !== 'dot'" type="text" v-model="item.text" @blur="handleBlur(item)" :disabled="!item.isEdit" v-focus="item.isEdit" @change="valueChange(item)">
<input v-else type="text" v-model="item.id" @blur="item.isEdit = false" :disabled="!item.isEdit" v-focus="item.isEdit"></input>
<i :class="item.type !== 'dot'?'el-icon-edit':''" style="float: right;line-height: 48px;margin-right: 10px;cursor: pointer" @click="focusclick(item,index)"></i>
</li>
</ul>
js:以下是对focus的指令,对指令详解在官网上也可以自行研读。
directives: {
focus: {
update: function (el, {value}) {
if (value) {
el.focus();
}
}
}
},