Как правильно реализовать вложенный load в jquery?

Тема в разделе "JavaScript", создана пользователем verfaa, 18 ноя 2013.

Модераторы: ZiX
  1. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    375
    Симпатии:
    41
    Написал следующий скрипт, который отказывается корректно работать.
    Код:
            
    $(document).ready(function() {
    
                /* При загрузке страницы подгружаем фото из БД */
                $("#topimg").load("/page.php","action=get_foto",function(data){
    
                    json = $.parseJSON(data);
    
                /* В json.fimg приходит картинка вида <img src='d6.jpg' height='480px' />. Нужно запихнуть 
                    её в div #topimg и плавно показать, спрятав лоадер */
                    $(this).html(json.fimg).load(function () {
                        $("#top100loader").hide();
                        $(this).fadeIn(2000);
                    });
                });
    
        });
    
    Данный код не работает. Даже если попробовать запихнуть внутрь вложенного load() alert(1) - не срабатывает.
    Если попробовать убрать вложенный load(), написав просто $(this).html(json.fimg).fadeIn(2000); все работает, т.е. проблема именно во вложенном load().
    Есть ли решение данной проблемы и почему так происходит?
    версия jQuery v1.5.2
     
  2. Aserus

    Aserus Постоялец

    Регистр.:
    16 ноя 2013
    Сообщения:
    78
    Симпатии:
    4
    Пользуйся
    Код:
        
        $("#topimg").load("/page.php","action=get_foto",function(data){
                    var obj=$(this);
                    json = $.parseJSON(data);
                    obj.html(json.fimg);
                    obj.find('img').hide();
                    $("#top100loader").fadeIn(2000);
                    var img=new Image();
                    img.onload=function(){                       
                          $("#top100loader").fadeOut(2000);  
                           obj.find('img').fadeIn(2000);         
                    };
                    img.src=src
    
               
         
                });
     
    Последнее редактирование: 18 ноя 2013
  3. verfaa

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    375
    Симпатии:
    41
    Этот скрипт тоже не работает.
    img.onload=function(){ ... } не срабатывает (если alert('1'); прописать)
    Вопрос открыт...
     
  4. vipTelnet

    vipTelnet Постоялец

    Регистр.:
    14 янв 2013
    Сообщения:
    135
    Симпатии:
    11
  5. dzfelix

    dzfelix Писатель

    Регистр.:
    4 июл 2013
    Сообщения:
    7
    Симпатии:
    3
    jQuery.ajax и параметр async=false
    вам ведь по сути нужен синхронный запрос