1

jquery:animatedセレクターで問題が発生していanimateます。アニメーションが完了した後、jquery関数内のコールバック関数を使用してajaxページを呼び出しますが、問題:ajaxを介した呼び出しページが2回呼び出されます!

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

結果「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');
}

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

また、私は試しました:

$('#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回ロードされます」。

4

1 に答える 1

2

結果「page.phpはfirebugで2回ロードされます!」

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

$('#elemId').click(function(){
    $('html').animate({scrollTop: $('#sections_display').offset().top-100}, 500, function(){
            $('#sections_display').load('page.php');
    });
});
于 2012-05-01T20:28:49.247 に答える