Решил наваять маленькую заметочку — вдруг кому поможет .
Итак, у меня в проекте стояла задача запрограммировать умные, специфические вложенные селекты, с неограниченной вложенностью. Суть задачи в том, чтобы при выборе первого селекта проверялось наличие дочерних элементов дерева Nested Sets и если они есть, то выезжает следующий селект, получает данные с сервера и добавляет новые option.
Так вот, сделал. Запрограммировал кучу разных умных и удобных вещей, сижу себе довольный и офигеть как горжусь собой (действительно очень удобно пользоваться такими селектами, отлично вышло). Потом открываю IE и мой фэйс трижды сменил цвет
Прикиньте, вместо того, чтобы были надписи в селектах внутри был просто белый фон! Т.е. список есть, он раскрывается, но ты не видишь, что выбираешь. В ход пошел Firebag, но все было тщетно - логика работала как часы. Все было просто прелестно во всех браузерах кроме моего любимого IE. Несколько раз за эти 2 недели возвращался до этого вопроса и никак не мог понять, почему фон шрифта в селекте стал белым и не меняется (это я раньше так думал)?
Но сегодня на меня нашло прозрение: решил просто скинуть в обычный alert html() селекта. Посмотрел в лисе — все отлично и соответствует нормам. Посмотрел в IE, а там нету самих названий элементов — он их не добавляет. Пришлось лезть в код, вот:
- data = $.parseJSON(data);
- for (key in data) $(target).append(new Option(data[key],key));
Так я создавал новые элементы селекта. Как выявилось Эксплуататор неверно воспринимает мои указания кодом. Пришлось немного потанцевать с бубном и решение нашлось:
- data = $.parseJSON(data);
- for (key in data) $(target).append("+data[key]+"' value='"+key+"'>"+data[key]+""); // fixed IE bug
Работает во всех браузерах. Думаю, кому-то помог
Комментариев нет:
Отправить комментарий