У меня есть список SELECT, который я заполняю на основе результатов вызова ajax, затем выберите один из вариантов, основанный на ранее заданной переменной. Это отлично работает на IE8, но на IE6 это не так.Список вариантов выбора jQuery не обновляется достаточно быстро в IE6
Вот исходная функция:
function LoadCategories(jdata)
{
var options = '';
for (var i = 0; i < jdata.length; i++)
{
options += '<option value="' + jdata[i].CategoryName + '">' + jdata[i].CategoryName + '</option>';
};
$("select#categorySelect").html(options);
$("select#categorySelect").val(currentPatientCategory).attr('selected',true);
};
На IE6, как это порождает ошибки: «Не удалось установить выбранное свойство Неизвестная ошибка.»
Если я изменяю последнее заявление:
setTimeout('$("select#categorySelect option[value=" + currentPatientCategory + "]").attr("selected", true)', 1000);
Это похоже на работу. Я также попытался изменить .html(), чтобы использовать .append(), .appendTo(), используя соответствующий синтаксис для них. Я также попытался использовать переменную для выбранного элемента без sucess. Опять же, они работают на IE8, но не на IE6. Также работает установка предупреждения() до выбранного значения. Кажется, что параметры не помещаются в список достаточно быстро, чтобы следующий оператор действительно нашел их, если я не откладываю выбор в некотором роде.
Любой способ заставить эту работу работать без какого-либо «обходного пути», такого как setTimeout, или перемещать выбор в другом месте, эффектно задерживая его выполнение на бит?
Примечание: если я изменю 1000 на 100 в setTimeout, он будет работать частично и во времени, поэтому я не полностью доверяю этому решению.
Использование JQuery 1.4.2
Примечание: Клиентская база диктует IE6 поддерживается за счет старых компьютеров и правил обновления/задач в очень строгих условиях.
EDIT: Обратите внимание, что я, наконец, дошел до конца. Было условие гонки, которое существовало между генерацией некоторых данных через ajax и использованием, которое проявилось в IE6. Я решил, перемещая некоторые утверждения в моем коде, чтобы дать доказательство решения против неразрешенных объектов данных, сгенерированных как таковые. Большое спасибо плакатам, поскольку он указал мне в жизнеспособном направлении, чтобы разрешить это.
Как я отметил. append или .appendTo не решает проблему и не работает над IE8 (также делает .html), пробовав их все в разных формах. Я дам вашему выбору выстрел! –
Принимая этот ответ как тот, который помог мне больше всего. Редактирование моего вопроса, чтобы показать разрешение. –