【发布时间】:2012-11-02 18:14:33
【问题描述】:
所以我有一个元素(链接),它通过将鼠标悬停在另一个元素(目标)上来控制它的可见性。 当鼠标悬停链接时,目标应该变为可见,当鼠标离开时,目标应该在 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);
}
);
}
);
任何帮助将不胜感激。
干杯
【问题讨论】:
标签: jquery hover settimeout