Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Туплю с ajax (https://javascript.ru/forum/jquery/52339-tuplyu-s-ajax.html)

vanoha 14.12.2014 20:02

Туплю с 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();
		}
		}});
}

рони 14.12.2014 20:38

Цитата:

Сообщение от vanoha
ScrollT

это что?

рони 14.12.2014 20:42

vanoha,
чтобы прокрутить блок после вставки плагин ненужен .
строка 8
$("#gallery").scrollTop(10000)

vanoha 14.12.2014 21:24

jQuery('#gallery').ScrollT(); - это функция вставки скрола, и она нормально работает если я вставляю в блок картинки без ajax. jQuery.fn.ScrollT=function(parametrs){.....и тд

рони 14.12.2014 21:34

Цитата:

Сообщение от vanoha
она нормально работает если я вставляю в блок картинки без ajax

картинкам надо загрузится -- или запускать скролинг когда все картинки прогрузятся либо картинкам ставить размер на сервере

vanoha 14.12.2014 22:27

Супер, я об этом и спрашивал. Как сделать блин, что бы скрол запускался когда ajax загрузит все картинки? Это и был мой главный вопрос.

рони 14.12.2014 22:51

vanoha,
в itog на картинки поставить счётчик на load -- считать загрузки когда все тогда запускать скролл но проще установить размеры картинкам.

vanoha 14.12.2014 22:58

А скриптом можно пример? Чтобы я понял.

рони 14.12.2014 23:30

vanoha,
http://javascript.ru/forum/jquery/35...tml#post236316

http://javascript.ru/forum/jquery/46...tml#post307101

vanoha 14.12.2014 23:41

Чёто ни то. Может я тупой. Ни понял. С моей проблемой помогите справиться. Как мне сделать что бы функция скрол, срабатывала после загрузки всех картинок.

рони 15.12.2014 00:10

vanoha,
я вам две ссылки дал именно там код который запускает функцию после загрузки всех фото -- в itog взять все src картинок их загрузить -- после этого вставить itog на страницу и запустить скролл

рони 15.12.2014 00:31

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()

                })
            }
        }
    })
};

vanoha 15.12.2014 11:19

Спасибо за помощь, но почему то не работает. Ни каких ошибок не выдаёт, но и картинки не выводит. :(

vanoha 15.12.2014 11:26

Причём, проверяю len, выдаёт 0. Проверяю itog - <img src="main/1/1.jpg"><img src="main/1/2.jpg"><img src="main/1/3.jpg">.........................

рони 15.12.2014 12:15

vanoha, ещё вариант
jQuery('<div/>', {'html': itog}).find("img")

vanoha 15.12.2014 12:42

Вооооо, совсем другой коленкор. Спасибо огромное, выручил нереально.

vanoha 15.12.2014 12:48

Блин, плюсик поставить не могу, пишет: что бы я для начала поставил кому то другому. А кому поставить, если с этой проблемой только ты помог

рони 15.12.2014 12:58

vanoha,
на всякий случай
в коде не учтено отсутствие src


Часовой пояс GMT +3, время: 21:35.