1

Jquery に遅延を追加して、マウスが div id=test を離れると、3000 ミリ秒待機してから閉じるようにしようとしています。しかし、それは機能していないようですか?

Jquery 1.6.min を使用しています

あなたの助けとコードスニペットを前もってありがとう

$("#test").hover(function() {
    $(this).css({'z-index' : '10'});
    $(this).addClass("hover").stop()
        .animate({
            height: '60px'
        }, 1500);

    } , function() {
    $(this).css({'z-index' : '0'});
    $(this).delay(3000);
    $(this).removeClass("hover").stop() 
        .animate({
            height: '20px'
        }, 1500);
});
4

3 に答える 3

3

2番目のブロックで呼び出しをチェーンする必要があると思います。そうしないと、非同期で実行されます。

$("#test").hover(function() {
    $(this).css({'z-index' : '10'});
    $(this).addClass("hover").stop()
        .animate({
            height: '60px'
        }, 1500);

    } , function() {
    $(this).css({'z-index' : '0'})
       .delay(3000)
       .removeClass("hover")
       .stop() 
       .animate({
            height: '20px'
        }, 1500);
});
于 2011-10-02T20:23:25.750 に答える
1

遅延を効果的にするためにチェーンを使用する必要があるというのは大げさな推測です

または、「リーブハンドラー」では、次のようなものを使用できます。

function(){ setTimeout(function(){ .. perform what you need}, 3000);}
于 2011-10-02T20:25:23.350 に答える
1

間違った場所に .delay がありました。ドキュメントは次のとおりです。http://api.jquery.com/delay/

次のコードを使用する必要があります。

$(this).removeClass("hover").stop().delay(3000) 
    .animate({
        height: '20px'
    }, 1500);

そして、これが私の例です:http://jsfiddle.net/MarkKramer/7NrPA/3/

于 2011-10-02T20:34:18.693 に答える