2012-03-09 68 views
0

下面我写一个函数的悬停元素。我想仅当鼠标上的2个或更多秒的部分执行此功能。当他们会少或根本不是这样做的。执行的功能在2秒后

下面的代码中,我写道:

$(function(){ 
    $('section.zespol_list ul li a').hover(function(){ 
     $(this).next().fadeIn(1000); 
    }, 
    function(){ 
     $(this).next().fadeOut(1000); 
    }); 
}); 

回答

6

您可以使用setTimeout延迟执行和在这段时间内,如果鼠标移开触发明确使用clearTimeout计时器。

$(function(){ 
    var timeOutId; 
    $('section.zespol_list ul li a').hover(function(){ 
     timeOutId= setTimeout(function(){ 
      $(this).next().fadeIn(1000) 
     ), 2000); 
    }, 
    function(){ 
     clearTimeout(timeOutId); 
     $(this).next().fadeOut(1000); 
    }); 
}); 
1

使用setTimeout()clearTimeout()

var timer; 
$(function(){ 
    $('section.zespol_list ul li a').hover(function(){ 
     timer = setTimeout(function() { 
      $(this).next().fadeIn(1000); 
     }, 2000); 
    }, 
    function(){ 
     clearTimeout(timer); 
     $(this).next().fadeOut(1000); 
    }); 
}); 
+0

只是想解决它,但它并没有在所有的工作。下面我的代码连接到网络版: http://tinyurl.com/7j9934v 这个测试可以排列成正方形板的照片。 – Pietrov 2012-03-09 19:59:46

+0

@Pietrov这不是我的错,有一个错误:'未捕获TypeError:对象[对象对象]没有方法'slideViewerPro'' – 2012-03-09 20:01:08

+0

好吧我删除了问题,并没有在代码上工作。其他脚本会影响他的工作吗? – Pietrov 2012-03-09 20:08:53

0

清楚它其实有一个插件叫做HoverIntent。我没有用它个人,但似乎将解决您的问题

+0

这不会帮助,因为它不会被取消 – 2012-03-09 19:47:40