JQuery 1.7.1 «всплывающие» события IE8 и ниже не работают над ошибкой динамического выпадающего меню? - PullRequest
1 голос
/ 01 декабря 2011

Исходный код по адресу: http://jsfiddle.net/lski/4aTm5/

Мне удалось получить вышеуказанный код в Firefox, Chrome и IE9, но не в IE8 и ниже.

То, что я хотел, было:

Чтобы дать пользователю возможность заполнить несколько полей выбора с одинаковым именем, каждое из которых появится в новой строке.Только первый выбор обязателен, второй ... n-й необязателен.

Я хочу отобразить второе поле как минимум и динамически добавлять новые строки (с новым раскрывающимся списком) при необходимости.Новая строка будет иметь пустой выбор, а затем, если пользователь выбирает из этого списка новую строку, с новым раскрывающимся списком добавляется внизу.Если пользователь решает не указывать какую-либо конкретную опцию, он устанавливает пустое значение и строка удаляется.

Проблема, которую, я думаю, я обнаружил:

У меня все это работает, как показано на рисункессылка выше, в Firefox, Chrome и IE9, но не работает корректно в IE8 и ниже, при выборе динамически создаваемого.Я думаю, это потому, что пузырёкодный код, добавленный для имитации этого поведения в IE8 и ниже, не добавляется к динамически добавляемым выборкам, поэтому делегированный обработчик событий не поднимает их.или это мой код?если это проблема, я опубликую отчет об ошибке, но сначала хотел проверить, не был ли это я.

Заранее спасибо, Ли

Ответы [ 2 ]

2 голосов
/ 02 декабря 2011

Из того, что я понимаю (и я могу ошибаться), IE до версии 7 не обрабатывает правильно атрибуты имен вновь создаваемых элементов и изменяет атрибуты имен на лету.

В основном, что важно, если вы нормально поддерживаете IE8 +, вам нужно убедиться, что он не будет отображаться в режиме совместимости для IE. Я использовал следующий метатег:

<meta http-equiv="X-UA-Compatible" content="IE=8" />

Подробнее об этом дерьме: http://blogs.msdn.com/b/askie/archive/2009/03/23/understanding-compatibility-modes-in-internet-explorer-8.aspx

Я полагаю, что вы не можете достичь этого, используя IE7 - и ни в IE8, когда он не рендерит в стандартном режиме IE8.

Редактировать: Я вполне уверен, что вы знаете об этом, но вы можете проверить режим рендеринга в IE8, нажав F12 , он находится в верхней строке Режим документа .

0 голосов
/ 16 декабря 2011

В конце концов я отправил отчет об ошибке, однако кто-то меня тоже избил;), но я подумал, что я могу переложить сюда на случай, если кто-нибудь с похожей проблемой столкнется с этим вопросом.

Проблема имеетбыла определена командой jQuery и, по-видимому, находится на рассмотрении для jQuery 1.7.2 для тех, кому требуется эта функциональность.

Я обошел ее, отделив функцию-обработчик и прикрепив ее в качестве прямого обработчика для каждого клона, который работал дляя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...