所以我有一个元素(链接),它通过悬停在另一个元素(目标)上来控制它的可见性。当鼠标悬停链接时,目标应该变为可见,当鼠标离开时,目标应该在 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);
}
);
}
);
( http://jsfiddle.net/VfDkq/ )
任何帮助将不胜感激。
干杯