マウスオーバー時に各関数内で実行される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 関数がもちろん未完成であるため、最初に停止してデフォルトの位置に戻らないことです。