| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Нужно определить в каком инпуте был фокус(мигал ку |
| Автор: BlackApricot 14.5.2010, 05:21 |
| Нужно определить в каком инпуте был фокус(мигал курсор), чтобы потом вернуть его на место. Использование библиотек не желательно. Но и не откажусь, если будет конкретно написано, как к ней обратиться, и что она вернёт. То есть реальный рабочий код, учитывая нулевые знания библиотек. |
| Автор: Amphiluke 14.5.2010, 08:08 | ||
Проще всего навязать всем нужным input'ам обработчик события onfocus, в который будет запоминать текущий элемент в фокусе.
|
| Автор: BlackApricot 16.5.2010, 05:25 | ||||||
| Amphiluke, спасибо, но как видишь, всё ещё проще. Делаем глобальную переменную:
В нужных инпутах пишем:
В нужных местах проверяем, и если нужно(или можно?), ставим курсор:
При желании, или нужде, можно проверять: а нужно ли в это конкретное поле ставить курсор? а находится ли искомое поле в зоне видимости, не проскроленно ли это поле за пределы окна? Думать нужно в каждом конкретном случае, и если нужно что-то делать, стоит эту проверку засунуть в отдельную функцию. |
| Автор: Amphiluke 16.5.2010, 09:44 |
Не все то, что просто, есть одновременно и хорошо. Ладно если у вас немного этих инпутов. В этом случае худшее, чего вы получите — это несолидное захламление HTML кода повторяющимися Javascript-овыми вставками. А если инпутов полсотни (пример, конечно, надуманный, но тем не менее)? Собственно, для этого-то и хороши методы динамического «навешивания» обработчиков. Лучше всего пользоваться методами addEventListener и attachEvent. При этом, кстати, благодаря доступности экземпляра объекта Event никаких проблем не возникнет при необходимости дополнительных проверок, какой инпут вызвал событие, находится ли он в зоне видимости и прочее. И код HTML остается чистым, и нет проблем с дублирующимся кодом Javascript, и код этот к тому же самоадаптирующийся к условиям, когда число инпутов может изменяться. |