Вам необходимо использовать свойство обратного вызова fadeIn и fadeOut. При этом вы можете заказать их правильно и заставить их вести себя так, как вы хотите, например:
$('#button').click(function(){
$(this).fadeOut('fast', function(){
$(this).load('yourcontent.php', function(){
$(this).fadeIn('fast');
$(this).addClass('active');
}
}
}
Если вы используете функцию загрузки для загрузки контента, приведенный выше код должен оказаться полезным. Однако, если вы используете статическое содержимое для кнопки, вы также можете использовать функцию .html для загрузки содержимого в кнопку.
Вы можете вызвать кнопку с помощью селектора jQuery, как я это делал в примере выше, или вы можете использовать атрибут onclick:
<a onclick="example('one')">Test Button</a>
И тогда javascript будет:
function example(id){
$('#' + id).fadeOut('fast', function(){
$(this).load('yourcontent.php', function(){
$(this).fadeIn('fast');
$(this).addClass('active');
}
}
}
ОБНОВЛЕНИЕ 3
Я обновил вышеупомянутую функцию, чтобы сделать то, что, как я думаю, вы имели в виду, с идентификатором галереи в качестве параметра. На этот раз с функцией остановки.
$('#menu li').click(function(){
$('.gallery').queue("fx", []);
$('.gallery').stop(true, true);
var which = $('a', this).attr('href');
$('.gallery.active').fadeOut(2000, function(){
$(this).removeClass('active');
if($(which).attr('class') != 'active'){
$(which).fadeIn(2000, function(){
$(this).addClass('active');
});
}
});
});