Страница 1 из 1

Сначала сформировать элемент, а затем добавить его в DOM?

СообщениеДобавлено: 04 дек 2009, 15:22
bobroff
Здравствуйте. Вопрос следующий. Сейчас, например, у меня следующая схема добавления элемента:
1. В таблицу добавляется строка;
2. В строки добавляются ячейки;
3. В ячейку добавляется элемент select;
4. Создание и получение ответа от ajax запроса;
5. Добавление option в select из результатов ajax запроса.
Минус данного варианта в том, что элемент в DOM добавляются быстро, а ajax запрос работает медленнее и добавление элемента визуально получается не моментальным, а поэтапным.

Можно ли как-то сделать добавление по следующей схеме:
1. Создание отдельного элемента строки таблицы (не вставленного в DOM);
2. Добавление в него ячеек;
3. В ячейку добавляется элемент select;
4. Создание и получение ответа от ajax запроса;
5. Добавление option в select из результатов ajax запроса.
6. Добавление полностью сформированной строки в DOM.

Re: Сначала сформировать элемент, а затем добавить его в DOM?

СообщениеДобавлено: 04 дек 2009, 16:06
admin
Используйте функцию jQuery.ajax, вновь создаваемые элементы скрывайте с помощью display:none; После выполнения, успешного запроса, измените свойство display:none; для всех элементов, с помощью jquery функций(fadeIn,show).

jQuery.ajax({
url: "test.html",
cache: false,
success: function(html){
$("#results").fadeIn(html);
}
});

Re: Сначала сформировать элемент, а затем добавить его в DOM?

СообщениеДобавлено: 04 дек 2009, 19:52
bobroff
admin писал(а):Используйте функцию jQuery.ajax, вновь создаваемые элементы скрывайте с помощью display:none; После выполнения, успешного запроса, измените свойство display:none; для всех элементов, с помощью jquery функций(fadeIn,show).

jQuery.ajax({
url: "test.html",
cache: false,
success: function(html){
$("#results").fadeIn(html);
}
});


Спасибо. Тоже придумал такой вариант, но решил спросить, вдруг есть какой-то специальный метод для этого.

Re: Сначала сформировать элемент, а затем добавить его в DOM?

СообщениеДобавлено: 04 дек 2009, 20:50
admin
В jquery наверно нет, но в javascript наверняка есть. Если построить функции, выполняемые в зависимости от выполнения предыдущих функций.