Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   focus() для элемента, не поддерживающего событие focus (https://javascript.ru/forum/jquery/23779-focus-dlya-ehlementa-ne-podderzhivayushhego-sobytie-focus.html)

mosgaz 06.12.2011 03:42

focus() для элемента, не поддерживающего событие focus
 
Подскажите, как можно включить «фокусировку» для элемента, не поддерживающего событие focus (DIV, SPAN, TD, LI и т.д)?

ksa 06.12.2011 08:45

mosgaz, а как ты себе представляешь "фокус" на элементе, который тот "фокус" не поддерживает?

Kolyaj 06.12.2011 09:16

Укажите tabindex.

mosgaz 06.12.2011 10:45

Цитата:

Сообщение от ksa (Сообщение 140987)
mosgaz, а как ты себе представляешь "фокус" на элементе, который тот "фокус" не поддерживает?

ksa, я бы не спрашивал, если бы знал наверняка. Но подозреваю, что это возможно реализовать через bind || live || trigger.
Создается новый DOM-элемент на который должен переместиться текстовый курсор (focus). Уверен, что вопрос 2-3х строчек кода, но я уже в течении д-цати мучаю яндекс и гугл - безрезультатно. Думал даже об эмуляции .click()

Kolyaj, tabindex в моем случае не подходит. В таблице, Tab и Shift+Tab ведут себя одним образом, в списках - другим, в div и p - отступ.

Kolyaj 06.12.2011 11:02

Цитата:

Сообщение от mosgaz
Kolyaj, tabindex в моем случае не подходит. В таблице, Tab и Shift+Tab ведут себя одним образом, в списках - другим, в div и p - отступ.

Чего-то я не уловил смысла в этом приложении.
Ещё раз: если хотите, чтобы div получал фокус, выставьте ему tabindex.

mosgaz 06.12.2011 11:22

Цитата:

Сообщение от Kolyaj (Сообщение 140999)
Чего-то я не уловил смысла в этом приложении.
Ещё раз: если хотите, чтобы div получал фокус, выставьте ему tabindex.

Kolyaj, div или любой другой элемент c tabindex'ом получит фокус при нажатии Tab (если это не переопределено). Но вопрос в том, как передать фокус на определенный элемент (переместить текстовый курсор) после выполнения n-ой функции, т.е. не зависимо от нажатия Tab, безусловно.

Kolyaj 06.12.2011 11:32

У div-а не может быть текстового курсора, если он не contenteditable.

mosgaz 06.12.2011 11:38

Цитата:

Сообщение от Kolyaj (Сообщение 141004)
У div-а не может быть текстового курсора, если он не contenteditable.

Kolyaj, прошу прощения, забыл упомянуть. Работаю над визуальным редактором. Все элементы находятся в iframe, который contenteditable.

mosgaz 06.12.2011 14:37

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

melky 06.12.2011 16:58

у вас сообщения противопоставлены друг другу.
придётся вас послать читать мануалы.

PS myElement.focus() должно хватить, если элемент его держит.

mosgaz 06.12.2011 17:14

melky, у вас подпись (в JavaScript нет нерешимых задач) противоречит сообщению, придется вас тоже послать читать)

Вы хотите сказать что если td не поддерживает фокус, то не существует способа переместить на него курсор по событию?

melky 06.12.2011 17:51

Цитата:

Сообщение от mosgaz (Сообщение 141060)
Вы хотите сказать что если td не поддерживает фокус, то не существует способа переместить на него курсор по событию?

я хочу сказать, что элемент без атрибута contenteditable не держит фокус.

PS только что проверил. в хроме ставится каретка, в FF - нет.


Часовой пояс GMT +3, время: 17:47.