2

マウスオーバー時に各関数内で実行されるsetTimeout関数をクリアする方法

ここに簡単なコードがあります

var timer;

function Close() {
    clearTimeout(timer);
    $(child).css({left:0});
}

$(element).mouseover(function() {
    $(child).each(function(i) {
        var timer = setTimeout(function() {
                        $(child).eq('+i+').stop().animate({left:300});
                    }, 350 * (i + 1))
    });
})

$(element).mouseleave(function() {
    Close()
})

それは正常に動作しますが、問題は、アニメーションが完了する前にマウスがすばやく移動すると、 setTimeout 関数がもちろん未完成であるため、最初に停止してデフォルトの位置に戻らないことです。

4

1 に答える 1