jquery在2秒后延迟显示

时间:2012-04-07 18:27:05

标签: javascript jquery

我希望如果用户在一个类上移动鼠标两秒钟(保持鼠标按钮两秒钟),则显示他隐藏了类。如何? ()

如果你在课堂上移动鼠标串联(几次),你会看到slideToggle是自动完成的,我不想这样做。怎么解决它?

DEMO: http://jsfiddle.net/tD8hc/

我试过了:

$('.clientele-logoindex').live('mouseenter', function() {
    setTimeout(function(){
        $('.clientele_mess').slideToggle("slow");
    }, 2000 );
}).live('mouseleave', function() {
        $('.clientele_mess').slideUp("slow");
})​

4 个答案:

答案 0 :(得分:1)

请尝试以下链接您的问题将解决

http://jsfiddle.net/G3dk3/1/
  

var s;
   $('。clientele-logoindex')。live('mouseenter',function(){

    s = setTimeout(function(){
        $('.clientele_mess').slideDown();
    }, 2000 );
}).live('mouseleave', function() {
        $('.clientele_mess').slideUp("slow");
    clearTimeout(s)
})

答案 1 :(得分:0)

像这样写你的HTML

<div class="clientele-logoindex">Keep the mouse here
<div class="clientele_mess" style="display: none;">okkkkkkko</div></div>

答案 2 :(得分:0)

在计时器启动时记录并在开始计时之前检查是否存在计时器:

window.timer = null;    
$('.clientele-logoindex').live('mouseenter', function() {
    if(!window.timer) {
        window.timer = setTimeout(function(){
            $('.clientele_mess').slideToggle("slow");
            window.timer = null;
        }, 2000 );
    }
}).live('mouseleave', function() {
        $('.clientele_mess').slideUp("slow");
})​

答案 3 :(得分:0)

看看hoverIntent是一个jquery插件,以确保将鼠标悬停在元素上。