2012-02-18 6 views

答えて

0

prependコールバックがないため、すぐに変更されます。 .prepend() methodは、コールバックを取らない

$('#primary').fadeOut('slow', function(){ 
    var primary = this; 
    $('<div id="content"/>') 
     .prependTo(primary) 
     .load(link+' #content', function(){ 
      $(primary).fadeIn('slow'); 
     }); 
    }); 
}); 

:これを試してみてください。

$('#primary').fadeOut('slow', function(){ 
    $('<div id="content"/>').prependTo('#primary') 
     .load(link+' #content', function(){ 
      $('#primary').fadeIn('slow'); 
     }); 
}); 
+0

不要な}}を削除した後に動作します。ありがとう – Gab

2

.prependメソッドは非同期ではないため、コールバックを受け取りません。

最初の引数として関数を渡すことはできますが、1つの要素だけを前置する場合にはあまり役に立ちません。

ここにコードが修正されました。

$('#primary').fadeOut('slow', function(){ 
    var content = $('<div id="content"/>'), 
     primary = $(this); 
    primary.prepend(content); 
    content.load(link + ' #content', function(){ 
     primary.fadeIn('slow'); 
    }); 
}); 
0

次のようなものを試してみてください。私は.prependTo()を代わりに使用しました(コールバックをとらない)ので、コンテキストを保持するので、​​コールをチェーンすることができます。