2012-05-01 6 views
1

jquery :animatedセレクタの問題に直面しています。アニメーション完了後にajaxページを呼び出すjquery animate関数内のコールバック関数を使用します。 :呼び出しページはajax経由で2回呼び出されます!.is( ":animated")セレクタはアニメーション中にtrueを返し、2回呼び出されます

結果 "page.phpがfirebugで2回読み込まれました"。

だから私は試してみました:

$('#elemId').click(function(){ 
     $('html,body').animate({scrollTop: $('#sections_display').offset().top-100}, 500); 
}); 

if ($('html,body').is(":animated")) { 
    $('#sections_display').load('page.php'); 
} 

問題は常にページのアニメーションの間にtrueを返すが、アニメーションが終わった後、私はtrueを返したいif ($('html,body').is(":animated"))です。

はまた、私は試してみました:

$('#elemId').click(function(){ 
$('html,body').animate({scrollTop: $('#sections_display').offset().top-100}, 500, function(){ 
    if ($(this).is(":animated")) { 
     $('#sections_display').load('page.php'); 
    } 
}); 
}); 

結果 "page.phpは二回回ロードされます"。

答えて

2

結果 "page.phpがfirebugで2回ロードされました"。

これは、イベントをhtmlbodyの両方に添付しているためです。ただhtmlを試してください:

$('#elemId').click(function(){ 
    $('html').animate({scrollTop: $('#sections_display').offset().top-100}, 500, function(){ 
      $('#sections_display').load('page.php'); 
    }); 
}); 
+0

それは働いた:)、ありがとう – semsem

+1

問題ない、喜んで助けてください。 –

関連する問題