だから私はそれにホバーすることによって別の要素(ターゲット)の可視性を制御する要素(リンク)を持っています。マウスがリンクをホバーすると、ターゲットは表示に変わり、マウスが離れると、2秒後にターゲットは非表示になります。
ここまでは順調ですね。しかし、2秒が経過する前にマウスが表示されているターゲットにカーソルを合わせても、ターゲットが表示されたままになるようにするにはどうすればよいですか?
私はそれをsetTimeoutとclearTimeoutで動作させるようにしましたが、それは本当にバグがあり、まったく気分が良くありません。
var time = 1000;
$(".link").hover(
function () {
$('.target').css('display', 'none');
clearTimeout($(this).data('timeout'));
$('.target').css({'display': 'block'});
},
function () {
var timer = setTimeout(function() {$('.target').fadeOut(1000).delay(100).css('display', 'none'); clearTimeout(timer); }, time);
$('.target').hover(
function () {
clearTimeout(timer);
},
function () {
var timer = setTimeout(function() {$('.target').fadeOut(1000).delay(100).css('display', 'none'); clearTimeout(timer); }, time);
}
);
}
);
どんな助けでも大歓迎です。
乾杯