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

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

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

Например:

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

P.S Идентичная ситуация, обычно бывает с :focus - в CSS. Но, нужно сделать в стиле JS.
  • Вопрос задан
  • 1277 просмотров
Решения вопроса 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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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