2012-02-03 2 views
0

У меня есть предмет слайда, и я хочу, чтобы div #content скользил вверх после того, как мышь была вне .content более 2 секунд. но я хочу, чтобы моя мышь вернулась, если она находится за эти 2 секунды. Вот скрипка - http://jsfiddle.net/YZDGu/..slideUp() после того, как мышь отсутствовала в течение 2 секунд

ответ

4

Использование setTimeout и clearTimeout:

var slideTimer; 

$(".container").hover(function(){ 
    $('#content').slideDown(); 
    clearTimeout(slideTimer); 
},function(){ 
    slideTimer = setInterval(function() { 
     $('#content').slideUp(); 
    }, 2000); 
}); 

Демо: http://jsfiddle.net/GFpHH/

1

Обновлена ​​ваша скрипка here с использованием set/clearInterval.

См. setInterval и clearInterval.

+0

, что это не совсем то, что я хочу, потому что если я кладу мышь в течение одной секунды, а затем верните его, он будет скользить вверх, и это не то, что я хочу. – theliberalsurfer

+0

@AndrewMilson Обновлено, чтобы включить проверку того, была ли перегружена мышь. – sinemetu1

1

Добавить задержку:

$(".container").hover(function(){ 
     $(".container #content").slideDown(); 
},function(){ 
     $(".container #content").delay(2000).slideUp(); 
}); 
Смежные вопросы