@vilaugra

Как изменить порядок событий (@click, @blur) на Vue.JS?

В компоненте Vue есть блок:
<div @focus="show" @blur="hide" contenteditable>
  ...
</div>

Функция show показывает один элемент (он НЕ дочерний), а hide - его скрывает. У этого элемента есть функция, которая вызывается по клику:
<div @click="myFunc">
  ...
</div>

Так вот, если кликать на этот элемент, должна вызываться функция myFunc, но первой вызывается функция hide из-за того, что фокус пропадает с главного блока, затем нужный элемент скрывается и функция myFunc не вызывается.
Как можно изменить порядок событий, или сделать что еще, чтобы функция myFunc все-таки вызывалась при клике на элемент?
  • Вопрос задан
  • 899 просмотров
Пригласить эксперта
Ответы на вопрос 2
wapster92
@wapster92 Куратор тега JavaScript
Вопрос: как у тебя на div может срабатывать focus/blur? И если элемент по которому кликают находится внутри элемента при этом на него нельзя сфокусироваться (а div такой), фокус с родителя не спадет. Делай какое-нибудь условие в hide, что-бы такого закрытия не происходило.
Ответ написан
@alekssamos
Программист любитель
Сделай через небольшой setTimeout.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы