2

それはこのように少しなります:

$("example").hover(function(){
        ("example").stop().show(/*More Code*/, callback());
    }, function(){
        ("example").stop().hide(/*More Code*/, callback());
    }
)

したがって、最初のアニメーションが完了する前にマウスがその領域を離れると、すべてのアニメーションが停止し、コールバックがスキップされます。stop()を使用して、コールバック関数を実行する方法はありますか?

4

1 に答える 1

1

setTimeoutコールバックの代わりに、アニメーションの最後に起動するタイミングのを使用します。

$("example").hover(function(){
        $("example").stop().show(1000);
        setTimeout(function() { /* do something */ }, 1000);
    }, function(){
        $("example").stop().hide(1000);
        setTimeout(function() { /* do something */ }, 1000);
    }
);

もう1つのオプションは、.stop(true,true)の代わりにを使用すること.stop()です。

これにより、キューがクリアされ、アニメーションが最後に送信され、コールバックが発生します。

$("example").hover(function(){
        $("example").stop(true,true).show(1000);
    }, function(){
        $("example").stop(true,true).hide(1000);
    }
);
于 2011-01-27T04:09:06.917 に答える