vue this.$refs input 获取焦点

10 篇文章 0 订阅

 

1.html

<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.12.0/lib/index.js"></script>
<div id="app">
  <el-tree :data="data" node-key="id" draggable default-expand-all :expand-on-click-node="false"> <span class="custom-tree-node" slot-scope="{ node, data }">

      <el-input v-model="data.label" v-if="node.isEdit" @blur="editLabel(node,data)" :ref=`editLabelInput-${node.id}`></el-input>
      <template v-else>
        <span>{{ data.label }}</span>

        <el-tooltip class="item" effect="dark" :open-delay="300" content="编辑" placement="top">
          <el-button type="text" @click="edit(node,data)" icon="el-icon-edit-outline" circle></el-button>
        </el-tooltip>
      </template>
    </span>
  </el-tree>
</div>

2.js

var Main = {
  data() {
    return {
      data: [{
        label: '一级 1',
        children: [{
          label: '二级 1-1',
          children: [{
            label: '三级 1-1-1'
          }]
        }]
      }, {
        label: '一级 2',
        children: [{
          label: '二级 2-1',
          children: [{
            label: '三级 2-1-1'
          }]
        }, {
          label: '二级 2-2',
          children: [{
            label: '三级 2-2-1'
          }]
        }]
      }, {
        label: '一级 3',
        children: [{
          label: '二级 3-1',
          children: [{
            label: '三级 3-1-1'
          }]
        }, {
          label: '二级 3-2',
          children: [{
            label: '三级 3-2-1'
          }]
        }]
      }],
      defaultProps: {
        children: 'children',
        label: 'label'
      }
    };
  },
  methods: {
    edit(node, data) {
      console.log(node)
      this.$set(node, 'isEdit', true)
      this.$nextTick(() => {
        this.$refs[`editLabelInput-${node.id}`].focus()
      })
    },
    editLabel(node, data) {
      this.$set(node, 'isEdit', false)
    }
  }
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值