В моем приложении много элементов DOM с использованием jquery-ujs. Это нормально по большей части.Повторное использование фокуса для замещенного элемента DOM
Иногда у меня есть элемент формы, который заменяется, имея фокус. Я хочу, чтобы у вас была возможность сохранить фокус для пользователя.
Я попытался следующие, но проблема в том, что JQuery, как представляется, рассматривать новый узел, как именно это, а не точную копию узла он заменяет:
$(document).on('ajax:beforeSend',function(){
window.focussed = $("*:focus");
});
$(document).on('ajax:complete',function(){
window.focussed.focus();
});
В идеале, я бы смог для этого, не добавляя к разметке.
Не знаю, что такое ваш HTML, поэтому вы не можете предложить полное решение, но удаляемый элемент имеет имя или другой атрибут, который вы можете использовать для его выбора. ? Вы можете сохранить _selector_ и использовать его для повторного поиска элемента с помощью '$ (селектор) .focus()'. Или, наоборот, используйте индекс заменяемого элемента, чтобы повторно найти его, используя ['.eq()'] (http://api.jquery.com/eq/) – andyb
Как уже упоминалось, я хотел бы отделить эту функциональность от разметка, если я смогу –
Не будет больше связывания с разметкой, чем то, что уже существует. Я просто спрашивал, есть ли альтернативный способ хранения ссылки на сфокусированный элемент, либо через путь DOM, либо другой атрибут. Если вы добавите HTML к вопросу, я могу предложить что-то более конкретное. – andyb