|
|
|
Javascript фокусы, потеря фокуса.
|
|||
|---|---|---|---|
|
#18+
Очень творческое задание у меня есть. Есть некая табличка: --------------------- Столбец1|Столбец2 --------------------- Label1 | Field1 Hidden1 Label2 | Field2 Hidden2 .... --------------------- То есть в первом столбце некая строчка, во втором поле для ввода. Если еще точнее, то во втором столбце в каждой ячейке тоже отдельная табличка, в первом столбце которой и есть поле для ввода (Field), а во втором некий div обладающий вот таким свойством: style="display:none;". Внутри этого дива есть еще два поля для ввода (условно назовем их f1 и f1). Как только Field получает фокус ввода, то и div становится видимым, и, соответственно, f1 и f1 видно, и я могу в них тыкнуть мышкой, и что-нибудь изменить. Ну а теперь и задача : Мне нужно как-нибудь сделать так, что после того, как я введу что-нибудь в поля f1 и f2 и, если я снова не возвращаюсь в Field, то div снова бы приобретал свойство display:none. Вроде бы, все просто, но не тут то было. Если для Field задать событие onBlur, то после потери фокуса я просто напросто не могу попасть в поля f1 и f2 (исчезают сразу после того, как я в них тыкаю - то есть когда Field теряет фокус :) ). Если же задать onmouseout для ячейки таблицы, то довольно проблематично, опять же, дотянуться до f1 и f2 не выйдя за область, да и вообще не факт, что я (пользователь) мышкой пользуюсь. Так на какое же событие и для какого объекта задать соответствующие действия? П.С. У всех Field-ов, div-ов, f1 и f2 есть уникальные id. П.П.С. Для примера, вот так выглядит onFocus для Field1: Код: plaintext И сама функция: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 16:06:31 |
|
||
|
Javascript фокусы, потеря фокуса.
|
|||
|---|---|---|---|
|
#18+
при получении field'ом фокуса фиксируйте то, что содержится в полях f1 и f2...Сделайте флаг, при изменении поля f1 или f2 флаг = true, при получении фокуса Field'ом флаг = false. при событии onblur для полей f1 и f2 проверяйте, если флаг == true, то скрывайте, если false, то не скрывайте...Желательно делать это с использованием таймера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 16:21:59 |
|
||
|
Javascript фокусы, потеря фокуса.
|
|||
|---|---|---|---|
|
#18+
EmilRegis ,спасибо. С таймером замечательная идея! А не подскажете ли, как проверить, есть ли фокус на заданном объекте? Гуглю, не могу найти что-то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 16:40:01 |
|
||
|
Javascript фокусы, потеря фокуса.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2010, 17:04:39 |
|
||
|
Javascript фокусы, потеря фокуса.
|
|||
|---|---|---|---|
|
#18+
EmilRegis Код: plaintext 1. не работает такой способ, к сожалению. Во всяком случае, в IE и FF. Зато можно Код: plaintext Еще раз спасибо за идею с таймером! Выручили!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2010, 12:18:21 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=261&tid=1453516]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
80ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 400ms |

| 0 / 0 |
