Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jQuery.ajax() подгрузка данных и событие .click() (https://javascript.ru/forum/jquery/16419-jquery-ajax-podgruzka-dannykh-i-sobytie-click.html)

kiff86 07.04.2011 15:17

jQuery.ajax() подгрузка данных и событие .click()
 
Добрый день! Никак не могу разобрать с проблемой: для начала обрисую мою "структуру":

есть элемент (ссылка в диве) при нажатии -> идет анимация другого дива и в нем подгружается php страница аяксом. Также появляется еще одна ссылка в диве, которая делает обратные действия, кроме аякса.. Данные подгруженные аяксом она просто стирает методом .remove()..
Проблема в том, что при повторном нажатии начинаются непонятные действия.. такое чувство, что скрипт(или браузер) забывают про аякс и ваще начинают выполнять скрипты "вразнобой"...
вот код моего скрипта...

$(".altitle .view").click(function(){
        $(this).parent().parent().attr('id','select');
        $("#select").find(".back a").fadeIn(1000);
        $albumName = $("#select .view a").html();
        $imgsInAlbum = $("#select .data").html().slice(-2);
        $albumWidth = $("#select table td:visible").length;
        $tableWidth = $("#select").find("table").width();
        $previewHeight = $("#select").find(".preview").height();
        $("#select .preview").css('height',$previewHeight);
        $("#select").find("table").fadeOut(800, function(){
            $(".album").not("#select").animate({ height: "toggle", opacity: "toggle" },800,function(){
                $("#select .preview").animate({height:'600'},1500,function(){
                    
                    $.ajax({
                        type: "POST",
                        url: "php/image.php",
                        data: {
                        album: $albumName,
                        count: $imgsInAlbum,
                        albumWidth: $albumWidth            
                        },
                        error: function(){
                            alert("Произошла ошибка! Фотографии не смогли загрузиться..");
                        },
                        success: function(data){
                                $("#select .preview").append(data);
                            }
                    });
                    
                    
                    
                });
            });
        });
    });
    $(".back a").click(function(){
        $("#select ul").fadeOut(1000,function(){
            $(this).remove();
                $("#select .preview").animate({height: $previewHeight},1500,function(){
               $("#select").find("table").fadeIn(600,function(){
                    $(".album").not("#select").animate({ height: "toggle", opacity: "toggle" },600);
                    $("#select").removeAttr('id');
               }); 
            });
        });
                
        $(this).fadeOut(1000);
    });

kiff86 07.04.2011 15:57

фигня в том когда я пытаюсь загрузить аяксом данные туда же, куда загружал только что, но затем удалил из дома методом .remove().. именно из-за второго вызова аякса проблемы начинаются!

kiff86 07.04.2011 16:06

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

kiff86 07.04.2011 16:24

похоже я узнаю все быстрее чем кто-либо, кто пытается разобраться с моей проблемой))) Заметил, что не работает fadeOut вот тут:

$(".back a").click(function(){
        $("#select ul").fadeOut(1000,function(){
            $(this).remove();


не понятно.. разбираюсь дальше..

Пы.сы.
А годы летят.... )

kiff86 08.04.2011 10:06

может, этот кусок:
$(".back a").click(function(){
        $("#select ul").fadeOut(1000,function(){
            $(this).remove();

изменить.. по сути, если хоцца работать с данными аякс, в документации говориться - use .live()... может прислушаться )))


А идей ни у кого нет.. или может я там мало кода вытащил на показ??

0931454574 08.04.2011 16:50

Эй, на корабле.
Тебе нужно чтобы при коике на чем либо загружался файл аяксом?
Что бы при клике на загруженом можно было загрузить другое?
Обьясни схематично, постараюсь до 24.00 ответить.


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