Мне нужно ввести элементы #Core и #Price , которые не могут совместно использовать родительский элемент. Мне нужно проверить, что оба они не находятся в фокусе, и когда у них нет функции.Убедитесь, что два элемента не находятся в фокусе
Я думал, что я мог бы просто сделать проверку, чтобы убедиться, когда один размывает другой не дано внимание, как так:
$('#Core').blur(function() {
if(!$("#Price").is(":focus")) {
getSellingPrice()
}
});$('#Price').blur(function() {
if(!$("#Core").is(":focus")) {
getSellingPrice()
}
});
Но это, кажется, срабатывает даже когда я даю фокус на другой входной узел , Я предполагаю, что когда размытие происходит, он проверяет секундную фокусировку до того, как ее еще не выбрали. Но я не уверен, как изменить код, чтобы получить желаемое поведение, чтобы убедиться, что оба элемента не находятся в фокусе, прежде чем запускать вызов функции.
Любые идеи о том, как я могу выполнить это или понять, почему этот текущий код не работает, очень ценятся.
Как мог два элемента быть в центре внимания, в то же время? Я что-то пропустил от вашего вопроса? –
Их не могло быть. Идея состоит в том, что один элемент находится в фокусе, и когда он теряет фокус, я хочу проверить, что другой элемент не набрал фокус перед выполнением getSellingPrice(). – user2725919
К сожалению, вы не можете последовательно проверять, какой элемент был перемещен, чтобы надежно отображаться в браузерах. Не только возникают проблемы с получением информации о событиях последовательно, есть также проблемы при табуляции, если вы делаете все это одним движением. Существует свойство, которое делает это: explicitOriginalTarget, но оно доступно только в Firefox, и я считаю, что теперь IE. Следовательно, необходим тайм-аут в соответствии с решением @ adeneo. Я предлагаю вам принять его ответ, это самый надежный способ его достижения в настоящее время. –