Туплю с ajax
Есть скрипт, который вытаскивает из папки все картинки в блок на ajax. К нему прикручен скрипт который после данного деяния должен делать на этом блоке скрол, Проблема в том, что скрол получается не той длинны. Как бы это объяснить по Русси - прокручивает не все картинки. Методом дедукции, я дошел что это потому, что он выполняется раньше чем загружаются все картинки в блок. Сделал такой вывод когда засунул функцию скрола в setTimeout. Понимаю, что ajax асинхронный, я поставил async:false, но толку ни какого, подскажите что я делаю ни так?
function Gallery(a)
{
jQuery.ajax({type:"POST", url:"moduls/basic_function.php", async:false, data:{id_work_gall:a}, success: function(itog){
if(itog.indexOf("Ошибка")+1){alert(itog);return false;}
else
{
jQuery("#gallery").html(itog);
jQuery('#gallery').ScrollT();
}
}});
}
|
Цитата:
|
vanoha,
чтобы прокрутить блок после вставки плагин ненужен . строка 8
$("#gallery").scrollTop(10000)
|
jQuery('#gallery').ScrollT(); - это функция вставки скрола, и она нормально работает если я вставляю в блок картинки без ajax. jQuery.fn.ScrollT=function(parametrs){.....и тд
|
Цитата:
|
Супер, я об этом и спрашивал. Как сделать блин, что бы скрол запускался когда ajax загрузит все картинки? Это и был мой главный вопрос.
|
vanoha,
в itog на картинки поставить счётчик на load -- считать загрузки когда все тогда запускать скролл но проще установить размеры картинкам. |
А скриптом можно пример? Чтобы я понял.
|
|
Чёто ни то. Может я тупой. Ни понял. С моей проблемой помогите справиться. Как мне сделать что бы функция скрол, срабатывала после загрузки всех картинок.
|
vanoha,
я вам две ссылки дал именно там код который запускает функцию после загрузки всех фото -- в itog взять все src картинок их загрузить -- после этого вставить itog на страницу и запустить скролл |
vanoha,
:blink:
function Gallery(a) {
jQuery.ajax({
type: "POST",
url: "moduls/basic_function.php",
async: false,
data: {
id_work_gall: a
},
success: function(itog) {
if (itog.indexOf("Ошибка") + 1) {
alert(itog);
return false
} else {
var img = jQuery(itog).find("img"),
len = img.length;
img.each(function(indx, el) {
var i = new Image;
i.onload = function() {
len--;
if (!len) {
jQuery("#gallery").html(itog);
jQuery("#gallery").ScrollT()
}
};
i.src = el.src ;
i.complete && i.onload()
})
}
}
})
};
|
Спасибо за помощь, но почему то не работает. Ни каких ошибок не выдаёт, но и картинки не выводит. :(
|
Причём, проверяю len, выдаёт 0. Проверяю itog - <img src="main/1/1.jpg"><img src="main/1/2.jpg"><img src="main/1/3.jpg">.........................
|
vanoha, ещё вариант
jQuery('<div/>', {'html': itog}).find("img")
|
Вооооо, совсем другой коленкор. Спасибо огромное, выручил нереально.
|
Блин, плюсик поставить не могу, пишет: что бы я для начала поставил кому то другому. А кому поставить, если с этой проблемой только ты помог
|
vanoha,
на всякий случай в коде не учтено отсутствие src |
| Часовой пояс GMT +3, время: 08:15. |