Туплю с 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, время: 21:35. |