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

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

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

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

Как избавиться от потери фокуса при нажатии по кнопкам? Спасибо.
  • Вопрос задан
  • 5339 просмотров
Решения вопроса 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
Ответ написан
Ваш ответ на вопрос

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

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