我在清除显示工具提示时设置的超时时遇到了一些麻烦。我相信我理解它是如何工作的,但由于某种原因它在这里不起作用。
$('.div').hover(
function(){ var t = setTimeout(function() {
$('.tooltip').show(500);
}, 500);},
function(){ clearTimeout(t);
$('.tooltip').hide(300);
});
答案 0 :(得分:0)
在函数外部移动变量声明以获得两个回调中的变量范围,否则t
无法在第二个回调中访问。如果要停止当前正在运行的动画,请使用stop()
方法。
var t;
$('.div').hover(function() {
t = setTimeout(function() {
$('.tooltip').show(500);
}, 500);
}, function() {
clearTimeout(t);
$('.tooltip').stop().hide(300);
});
或使用delay()
方法在动画队列之间提供延迟。
$('.div').hover(function() {
$('.tooltip').delay(500).show(500);
}, function() {
clearTimeout(t);
$('.tooltip').stop().hide(300);
});