Slide up, replace contents, then slide back down

Slide up, replace contents, then slide back down

I'm trying to do a flashy slide up, then use $.post() to load new information into the element, then slide it back down.  The problem I'm having is actually twofold.  Here's my code:
 
  1. $('a.comments-link').unbind('click').click(function(e) {
      var $s = $(this);
      e.preventDefault();
      $s.parent().parent().slideUp("slow", function() {
        $.post('ajaxtest.php', function(data) {
          $s.parent().html(data);
          });
        });
      $s.parent().parent().slideDown("slow");
      });








 
First, if I put the slideDown method inside slideUp's callback, it won't work.
 
Secondly, the element slides up normally, the new text loads, and it slides back down, but for some reason the element only slides back to its original height, then jumps the rest of the way to make the height fit the new contents.  I think this is because the methods all run asynchronously, so it's sliding up then sliding back down before the new content is fully loaded.  Is there a way to force it to wait until the new text is set before sliding back down?  Like I said, I tried putting the slideDown() method inside the slideUp() method's callback, but it didn't work, it slid up and didn't come back down.
 
Any ideas?