1

私がこれを持っているとしましょう

$(".a").animate(
        {"left":"100%"},
        {duration:50000, complete:function(){
             $(".a").css("background-color","black");
        }}
);

$(".b").mouseover(function(){
        $(".a").stop();
});

.bmouseover-edの場合、トリガー.aされないstop()ため、complete:eventトリガーされません。

complete:eventトリガーされて停止した場合でもどうすればよいですか?

これより良い解決策はありますか?

function aaa(){
   $(".a").css("background-color","black");
 }    

$(".a").animate(
        {"left":"100%"},
        {duration:50000, complete:function(){
            aaa();
        }}
);

$(".b").mouseover(function(){
        $(".a").stop();
        aaa();
});

[更新] これは私のコードが実際にどのように見えるかです、申し訳ありませんが以前にそれを表示しませんでした...

$(".a").animate(
        {"left":"100%"},
        {duration:50000, complete:function(){
             alert("A");
        }}
);

$(".b").mouseover(function(){
        $(".a").stop().animate(
             {"top":"100%"}
        )
});

一度だけ実行したいのですが、ユーザーの停止をalert("A")止めません。mouseover.b.a

このようにマウスオーバーを書く場合.b

$(".b").mouseover(function(){
        $(".a").stop().animate(
             {"top":"100%"}
             {complete:function(){
                  alert("A");
             }}            
        )
});

それはalert("A")二度かもしれません、そして私はそれを望んでいません...

4

2 に答える 2

2

あなたはjQuery.stop()'jumpToEnd'のパラメータを探しています:

これでうまくいきます:

$(".a").stop(true,true);

デモ:

于 2012-05-20T07:32:45.577 に答える
0

なぜトリガーする必要があるのですか?呼び出しのcomplete:event直後にバインドされているのと同じ関数を.stop()呼び出して、同じ効果を得ることができないのですか?

于 2012-05-20T07:23:18.403 に答える