当我将鼠标悬停在first
上时,它会显示Second
。
如果我然后将鼠标悬停至Second
,Second
将保持显示,否则隐藏Second
。
我的问题是在悬停first
和悬停Second
之间隐藏Second
太快了。
如何在将鼠标悬停至$(".second").hide("slow" );
之前延迟second
?
$(".first").hover(
function(){
$(".second").show();
},
function(){
$(".second").hide("slow" );
}
);
$(".second").hover(
function(){
$(".second").show();
},
function(){
$(".second").hide("slow" );
}
);
答案 0 :(得分:3)
解决方案是使用setTimeout()
var $second = $(".second");
$(".first").hover(function () {
clearTimeout($second.data('timer'));
$second.stop(true, true).show();
}, function () {
var timer = setTimeout(function () {
$second.stop(true, true).hide("slow");
}, 200);
$second.data('timer', timer);
});
$(".second").hover(function () {
clearTimeout($second.data('timer'))
$second.stop(true, true).show();
}, function () {
$second.stop(true, true).hide("slow");
});
演示:Fiddle
答案 1 :(得分:0)
$( "#clickme" ).click(function() {
$( "#book" ).hide( "slow", function() {
alert( "Animation complete." );
});
});