У меня есть функция jquery ajax, которая опрашивает сервер базы данных, чтобы узнать, есть ли новые записи.Если это так, он вставляет новые записи (с уникальными идентификаторами) в верхнюю часть списка записей, используя следующее:
$(new_records).insertAfter('#div_at_top_of_page');
Это отлично работает, даже в IE6.
Однако у каждой вставленной записи есть дополнительная функция ajax, позволяющая получить более подробную информацию об этой записи и вставить ее в элемент внутри вставленного элемента.
Это прекрасно работает во всех браузерах , кроме IE6.IE6 выполняет вторичную функцию ajax (я это подтвердил), но затем не вставляет содержимое.Это происходит молча, без каких-либо ошибок.
Я предполагаю, что это потому, что IE6 не видит вставленные элементы в DOM;но в любом случае я был бы благодарен за любые идеи о том, как решить эту проблему.
Изменить 2 - код, который я добавил в моем первом редактировании ниже, кажется, работает нормально,Проблема в том, что IE6 не знает, что существует $('#inserted_data_' + log_id)
.Это элемент, который был вставлен с использованием метода .insertAfter()
, описанного выше.
Редактировать - код, используемый для вставки вторичных данных:
$('.printout').live('click', function(ev) {
ev.preventDefault();
var ajaxUrl = $(this).attr('href');
$.ajax({
url: ajaxUrl,
cache: true,
dataType: 'json',
success: function(j, textStatus) {
var printout = j.printout;
alert(printout); // sanity check
var log_id = ajaxUrl.replace('/api/fetch_data/printout/', '');
$('#inserted_data_' + log_id).html(printout); // problematic line
}
});
return false;
});
Как я уже отмечалэта функция выполняется правильно, что подтверждается // sanity check
, но строка, отмеченная выше с комментарием // problematic line
, фактически не записывает данные в элемент '#inserted_data_' + log_id
.