onBlur как узнать элемент, по которому кликнули(не текущий элемент)?

176
11 ноября 2018, 12:30

по событию onBlur я могу получить текущий элемент, но мне надо запрограммировать разное поведение, в зависимости от того, по какому элементу кликнули.

Answer 1

Вероятно, вам нужен relatedTarget: https://jsfiddle.net/yaymer/d6xv2bfe/

let listener = e => { 
  console.log(e.relatedTarget); 
}; 
 
Array.from( 
    document.getElementsByTagName("button"),  
    btn => btn.addEventListener("blur", listener));
<button>Something</button> 
<button>Something2</button>

Answer 2

По-моему, никак. document.activeElement не прокатывает, поэтому остаётся только на фокус подписаться:

document.addEventListener('blur', function (event) { 
  console.log('blur: ', event.target.id, document.activeElement.id) 
}, true) 
 
document.addEventListener('focus', function (event) { 
  console.log('focus: ', event.target.id, document.activeElement.id) 
}, true)
input { width: 3em; }
<input id="a"> <input id="b"> <input id="c"> <input id="d"> <input id="e">

READ ALSO
Почему данный drag&amp;drop лагает

Почему данный drag&drop лагает

Реализовал у себя в проекте поддержку drag&drop функционала для элементов с классом draggableК сожалению, данная реализация ведет сея иногда странно:...

188
Не cрабатывает событие click на iPhone

Не cрабатывает событие click на iPhone

Знаю, что этот вопрос поднимался множество раз, и на него есть ответы, которые помогли многимНоя перепробовал все предложенные варианты,...

236
Js-jq dublicates .find

Js-jq dublicates .find

jq функция

188