Я слушаю события onFocus
и onClick
на одном и том же элементе ввода.onFocus
должен всегда устанавливать логическое значение на true
, а обработчик события onClick
должен переключать это логическое значение.
Но при нажатии оба события сначала запускаются с onFocus
, поэтому логическое значение сначала устанавливается на true
, а затем переключается с помощью onClick
.Как я могу изменить это поведение?
Я пытался использовать stopPropagation
внутри обработчика событий onClick
.Также установка флага isClicked
не помогла.(Возможно, потому что оба события срабатывают одновременно) (см. JSFiddle)
let input = document.getElementById("input");
let isOpen = false
input.onclick = () => {
isOpen = !isOpen
}
input.onfocus = () => {
isOpen = true
}
input.onblur = () => {
isOpen = false
}
JSFiddle: http://jsfiddle.net/coh29gwe/7/
При первом щелкнуть на входе флаг isOpen
должен быть true , но false .