Моя цель - открыть элемент input
во всплывающем окне и сфокусировать этот ввод.Поведение weird focus()
Так логично, я пробовал $('#input').focus()
, $('#input').first().focus()
и $('#input')[0].focus()
, но они не работают; но когда я меняю вкладку и возвращаюсь к своей вкладке, элемент input
находится в фокусе. Кто-нибудь видел что-то подобное? Или знаете, как это объяснить или даже лучше, знаете, как это исправить ...
P.S. Для комментариев: да, это единственный вход с идентификатором «input» на моей странице, и да, у меня есть элемент input
с идентификатором «input» на моей странице, и да, код для фокусирующих элементов вызывается после добавления input
к дому.
Вызов '.focus()' из какого-то другого обработчика событий (например, что-то, что переключает вкладки) может быть проблемой. По моему опыту, вы можете решить это, завернув вызов фокуса в обработчике тайм-аута с очень коротким временем таймаута. И '$ (" # input "). Focus()' все, что вам нужно (в обработчике тайм-аута). – Pointy
P.P.S: и нет, вы не предоставили никаких MCVE :) Но я думаю, что Уокей прав. Еще одна вещь, скрытый элемент не может быть сфокусирован, может быть, это более актуально тогда, чтобы сфокусировать его, как только показано. –
См. Также [Почему иногда используется setTimeout (fn, 0)?] (Http://stackoverflow.com/questions/779379/why -is-settimeoutfn-0-иногда-полезно) –