Задать вопрос

JavaScript: как не сбрасывать фокус при клике по элементу?

Здравствуйте!

Имеется и кнопки форматирования текста в div`е. При выделении текста в диве и клике по кнопке происходить следующее:

1. Слетает выделение текста
2. Функция уже ничего не форматирует

Как избавиться от потери фокуса при нажатии по кнопкам? Спасибо.
  • Вопрос задан
  • 5600 просмотров
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
@link_irk
Попробуйте обрабатывать нажатие на кнопку по событию onmousedown, а не по клику. onmousedown наступает раньше и вы успеете нормально обработать событие, до потери фокуса. А чтоб выделение вообще не сбросилось напишите в конце обработчика return false;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
benderskiy
@benderskiy
Не стоит выполнять действий по onmousedown — это неверно с точки зрения юзабилити.
Но вот предотвратить сброс выделения нужно.
$('button').on('mousedown', function() {
  // preventDefault and stopPropagation
  return false;
});

$('button').on('click', function() {
  // your action
});

Демо: codepen.io/benderskiy/pen/xClaH
Ответ написан
Ваш ответ на вопрос

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

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