| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Как сфокусировать div |
| Автор: Nata123 15.2.2006, 19:07 |
| как программно установить фокус на div, это делается длоя того, чтобы вызвать обработчик onkeypress? я делаю так divObj.focus(); но это работает так как нужно только в IE |
| Автор: Alx 15.2.2006, 19:39 |
| думаю, ошиька в 4 строке. |
| Автор: Innuendo 15.2.2006, 19:50 |
| Alx, не, в 8-ой.. вот там второй оператор кривой. Nata123, а что значит сфокусировать? если он у тебя уходит на задний план, а тебе надо на передний, то это делается не фокусом. А если у тебя текстовое поле, от фокусируй текстовое поле, а не весь див.. |
| Автор: 12345c 15.2.2006, 20:04 |
| Nata123, странно, что работает, ни у кого до сих пор не работало, если только у DIV не установлено contentEditable=true; (ie). Только в ie будет работать. А что мешает фокус считать совершенно условным понятием, а keypress ловить на document? (Правда, нужно позаботиться о прокрутке документа в видимую область, что focus() делает.) |
| Автор: Nata123 16.2.2006, 10:52 |
| Товарищи умники! вместо того, чтобы тешить своё самолюбие, осветили бы по существу. Я делаю поле- автозаполнения, т.е. человек в инпуте (эдите) начинает вводить буквы, ему подсвечивается в диве все города , которые с этих букв начинаются. Я хочу, чтобы человек мог клавишами ходить по списку подсвечивающихся городов, т.е. он нажимает клавишу - вниз, когда ввёл нужные буквы, и див становится активным (я это назвала "сфокусированным")и теперь я хочу, чтобы keypress срабатывал уже на диве. я это делала методом divObj.focus(), но это работает только в IE , в опере keypress работает на диве, если на него наведена мышка.. и ещё, если знаете, подскажите метод, который определяет активен ли этот элемент? типа element.hasFocus() (true/false) спасибо заранее |
| Автор: 12345c 16.2.2006, 13:21 | ||||
Товарищ[ь] Nata123, я лишь про то, что Вы что-то недоговариваете - см. пример с фокусами, как описано, который не работает в ie.
типа element.hasFocus прямого не существует, вместо этого создают .selection.createTextRange() (ie) и определяют, в каком месте он:
|
| Автор: frei 20.2.2006, 10:38 |
| Я на пальцах объясню...просто сложно объяснить.. Есть див, у него на onkeypress срабатывает функция MyFunc(), просто пусть выводится сообщение. если открыть страницу с этим дивом в IE, и кликнуть на него, увести мышку в сторону, а потом нажать любую клавишу, сработает функция MyFunc(), в опере сколько ни кликай эта функция сработает, только если мышка на этом диве... так вот divObj.focus() в IE делает тоже самое , что если бы мы кликнули на диве и увели мышку, а вот в Опрере сообветственно не делает...как поступать, что делать? |