2013-11-07 2 views
0

Когда я нахожусь на first, тогда он покажет Second.jQuery hover first и hover 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"); 
    } 
); 

ответ

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"); 
}); 

Demo: Fiddle

+0

да, это работает .. – Peter

0
$("#clickme").click(function() { 
$("#book").hide("slow", function() { 
alert("Animation complete."); 
}); 
});