В настоящее время я работаю над некоторым инструментом администратора со столом. Когда я нажму на поле, он сделает его редактируемым. Но у меня есть несколько полей, где у меня есть более одного поля выбора или текстового поля. Проблема заключается в том, что обработчик вызывается, когда одно поле выбора или текстовое поле размываются..blur() из двух полей выбора
Я попытался проверить, имеет ли какой-либо объект нужный объект, но кажется, что событие размытия активируется перед тем, как новый элемент имеет фокус.
Чтобы привести пример:
Мой HTML код выглядит следующим образом:
<form>
<select id="edit">
<!-- Options... -->
</select>
<select id="edit2">
<!-- Options... -->
</select>
</form>
И это некоторые из моих JS:
$(document).on("blur", "select.edit", finishEdit);
$(document).on("blur", "select.edit2", finishEdit);
// Some later point in the code
function finishEdit()
{
if(!($("select.edit:focus").length || $("select.edit2:focus").length))
{
// This should NOT be called if I just focus edit2! But it does!!
}
}
Так я начинаю имея редактировать выбранный , Я могу легко отредактировать его. Но если теперь я попытаюсь выбрать edit2, будет вызываться событие blur из edit. ОК. это не должно быть большой сделкой, так как я проверяю, если другой снижается. Но в этот момент edit2 еще не сфокусирован, поэтому мой чек не работает и вызывается код, который удаляет выпадающие списки и отправляет обновления!
Итак, как я мог выполнить эту работу? В основном, как я могу предотвратить событие размытия при стрельбе, если я сосредоточу внимание на другом действительном элементе?
(я надеюсь, что это более ясно теперь ...)