Mam taki kodzik:

Kod
function load(index) {
    $("#main").fadeOut('slow',
        function() {
            $("#loader").fadeIn('slow');
        }
    );
    
    $.ajax({
        type: 'POST',
        url: 'load.php',
        data: {id: index},
        success: function(data) {            
            $("#main").html(data);
            $("#loader").fadeOut('slow',
                function() {
                    $("#main").fadeIn('slow');
                }
            );        
        }
    });
}


Pomimo callback'ów etc. nie chodzi jakbym chciał. Animacje są, lecz nie znika ani #main ani #loader...
Dodam że gdy miałem wszystko na toggle lub hide & show działało ok tylko przy zmianie treści mi strona się rozjeżdżała (na chwilę)

Kolejne moje wypociny, niestety bez oczekiwanego skutku:
Kod
function load(index) {

    $("#main").hide('fast',
        function() {
            $("#loader").fadeIn('slow',
                function() {
                    $("#loader").show();
                }
            );
        }
    );
    
    $.ajax({
        type: 'POST',
        url: 'load.php',
        data: {id: index},
        success: function(data) {            
            $("#main").html(data);
            
            $("#loader").hide('fast',
                function() {
                    $("#main").fadeIn('slow',
                        function() {
                            $("#main").show();
                        }
                    );
                }
            );
    
        }
    });
}


Sprawa rozwiązana: (daje jakby ktoś potrzebował na przyszłość)

Kod
function load(index) {
    $("#main").fadeOut('slow',
        function() {
            $("#loader").fadeIn('slow');
            $.ajax({
                type: 'POST',
                url: 'load.php',
                data: {id: index},
                success: function(data) {            
                    $("#main").html(data);
                    
                    $("#loader").fadeOut('slow',
                        function() {
                            $("#main").fadeIn('slow');
                        }
                    );
                }
            });
        }
    );
}


Kod po prostu za szybko się wykonywał, jak opóźniłem go przez duuużego fora to zrozumiałem o co chodzi.