11

span class="before-click" をクリック
すると非表示になり、代わりに input class="after-click" が表示されます。
そして、表示された入力タグはフォーカスされている必要があります!
問題は、$refs.afterClick を使用してその DOM にアクセスして .focus() を指定しようとすると、.focus() が関数ではないという予期しないエラーが表示されることです。
この問題を解決するには?ありがとう。

var myApp = new Vue({
  el: '#app',
  data: {
    onEdit: false,
    msg: 'Something in here',
  },
  methods: {
    switchAndFocus() {
      if(!this.onEdit) {
       this.onEdit = true;
       this.$refs.afterClick.focus();
      }
    },
  },
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.3/vue.min.js"></script>
<div id="app">
  <span class="before-click" @click="switchAndFocus()" v-show="!onEdit">{{msg}}</span>
  <input type="text" class="after-click" ref="afterClick" :value="msg" v-show="onEdit">
</div>

4

1 に答える 1