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

Отмена события «Onclick»?

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

Кому не сложно, может быть подскажите пожалуйста.
Что именно нужно сделать, чтобы после работы события "onclick" при нажатие на любое другое место, данное событие отменялась.

Например:

Я нажал на кнопку, и сработал onclick - он был сделан для того, чтобы цвет текста изменился, допустим на "red".
И, после нажатие на другое любое место, он стал опять white (то есть, стандартным).

P.S Идентичная ситуация, обычно бывает с :focus - в CSS. Но, нужно сделать в стиле JS.
  • Вопрос задан
  • 1829 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 3
JackWilliams
@JackWilliams
button.onclick = function(e){
//меняем цвет
}
document.onclick = function(e){
if(e.target != button) //ставим другой цвет
}


Условия типа e.target.classList.contains() могут не срабатывать, если в кнопке есть картинка или другой элемент. Поэтому попробуйте еще e.target.closest('СЕЛЕКТОР КНОПКИ') в условиях.
Ответ написан
@VegasChickiChicki
Делегирование. Вешаете на документ\область обработчик клика, проверяете есть в ли месте клика нужный класс - делаете свои делишки, если нету - делаете другие делишки.
//внутри функции onclick
if (event.target.classList.contains('нужный класс')){
...
} else { ... }
Ответ написан
Комментировать
hzzzzl
@hzzzzl
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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