@Fluber

Как поймать фокус на элемент с помощью vuejs?

Здравствуйте, есть такой код:

<template>
  <span
    tabindex="-1"
    contenteditable="true"
    spellcheck="false"
    style="width: 800px"
    v-text="displayText.join('')"
    @focus="focused = true"
  />
</template>


Пытаюсь поймать фокус, но почему-то нативный эвент focus не срабатывает на элементе span. Значение "focused" не меняется, всегда false. Как это можно решить?
  • Вопрос задан
  • 553 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Azperin
Дилетант
Комментировать
Пардон с мобилки пишу, если еще актуально и на основе комментариев выше.
mplate>
  <div id="app">
    <span
      contenteditable="true"
      spellcheck="false"
      style="width: 800px; display: block"
      v-text="textEl"
      @focus="focused = true"
      @blur="focused = false"
    />
    {{ focused }}
  </div>
</template>

<script>
export default {
  data() {
    return {
      focused: false,
    };
  },
  computed: {
    textEl() {
      if (this.focused) {
        return "text with focus";
      } else {
        return "text with not focus";
      }
    },
  },
};
</script>

Просто делаете вычисляемым свойством и все меняется. Извините на sandboxe не смог с мобилки сохранить
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы