![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| dfire |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 30.8.2007 Репутация: нет Всего: нет |
Всем привет.
Столкнулся с проблемой в Opera 9.2x (IF и FF жуют ее без проблем). пример кода:
Суть: имеем два дропа, второй скрыт в блоке <div> с атрибутом display:hide. Выбираем Африку и идем на второй шаг, смотрим содержимое второго дропа - все Ок. Идем по линку на первый дроп и выбираем Азию, по линку на второй шаг и снова все Ок. Идем назад по линку на первый шаг и снова выбираем Африку, по линку на втором шаге видим следующее: (africa) Каир (africa) Триполи (africa) Претория (asia) Джакарта (asia) Токио Прикол в том, что если мы посмотрим на DOM этой странички через девелоперскую консоль Оперы, то увидим, что последних пунктов во втором дропе нет. Такое впечатление, что это осталось в буфере рендера. Как это побороть я пока не нашел. Пробовал менять методы очистки вротого дропа:
и прочие извращения - результат нулевой. Проблема возникает сугубо при условии формирования второго селекта в скрытом блоке, если переписать код таким образом, что бы оба дропа были видны сразу - проблема исчезает. Обойти эту багу можно через перестановку обработчика с метода onchange первого дропа на case второго шага, тогда формирование содержимого второго селекта пойдет уже в видимом блоке и Опера все отобразит корректно. Но хотелось бы поизвращаться и решить проблему тем способом, что описан в коде. Может я упустил из виду какую нить особенность Оперы? Есть идеи? |
||||||
|
|||||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
dfire, привет.
Используй не display:none а visibility:hidden, тогда она будет рендерить элемент, хоть и не будет его показывать. А с display:none она даже его не рендерит, видно в этом проблема. То есть вот так у меня заработало и в опере
|
|||
|
||||
| dfr |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 30.8.2007 Репутация: нет Всего: нет |
Спасибо за решение
display:none использовал в основном из-за библиотечки Prototype с ее .show() .hide() |
|||
|
||||
| smartov |
|
|||
![]() свой собственный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4225 Регистрация: 2.2.2006 Где: NJ Репутация: 7 Всего: 259 |
dfr, правильно, я тоже display:none в основном использую, но когда подобные глюки лезут visibility:hidden + position:absolute спасают.
Это сообщение отредактировал(а) smartov - 31.8.2007, 11:35 |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |