| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Проблема с формированием select в Opera |
| Автор: dfire 30.8.2007, 22:07 | ||||||
| Всем привет. Столкнулся с проблемой в Opera 9.2x (IF и FF жуют ее без проблем). пример кода:
Суть: имеем два дропа, второй скрыт в блоке <div> с атрибутом display:hide. Выбираем Африку и идем на второй шаг, смотрим содержимое второго дропа - все Ок. Идем по линку на первый дроп и выбираем Азию, по линку на второй шаг и снова все Ок. Идем назад по линку на первый шаг и снова выбираем Африку, по линку на втором шаге видим следующее: (africa) Каир (africa) Триполи (africa) Претория (asia) Джакарта (asia) Токио Прикол в том, что если мы посмотрим на DOM этой странички через девелоперскую консоль Оперы, то увидим, что последних пунктов во втором дропе нет. Такое впечатление, что это осталось в буфере рендера. Как это побороть я пока не нашел. Пробовал менять методы очистки вротого дропа:
и прочие извращения - результат нулевой. Проблема возникает сугубо при условии формирования второго селекта в скрытом блоке, если переписать код таким образом, что бы оба дропа были видны сразу - проблема исчезает. Обойти эту багу можно через перестановку обработчика с метода onchange первого дропа на case второго шага, тогда формирование содержимого второго селекта пойдет уже в видимом блоке и Опера все отобразит корректно. Но хотелось бы поизвращаться и решить проблему тем способом, что описан в коде. Может я упустил из виду какую нить особенность Оперы? Есть идеи? |
| Автор: smartov 30.8.2007, 22:35 | ||
| dfire, привет. Используй не display:none а visibility:hidden, тогда она будет рендерить элемент, хоть и не будет его показывать. А с display:none она даже его не рендерит, видно в этом проблема. То есть вот так у меня заработало и в опере
|
| Автор: dfr 31.8.2007, 09:19 |
| Спасибо за решение display:none использовал в основном из-за библиотечки Prototype с ее .show() .hide() |
| Автор: smartov 31.8.2007, 11:35 |
| dfr, правильно, я тоже display:none в основном использую, но когда подобные глюки лезут visibility:hidden + position:absolute спасают. |