2014-08-28 203 views
1

我想为下面的代码在悬停效果中添加一个延迟。我在jQuery中很薄弱。在悬停延迟中添加延迟

$(".home-furniture .menu > ul > li > a").hover(function(e){ 
    e.preventDefault(); 
    $(".home-furniture .menu > ul > li > a").removeClass("active"); 
    $(".home-furniture .menu > ul > li > .gallery").removeClass("active"); 
    $(".home-furniture .menu > ul > li > div .viewer-border").css({"left":"-9999em"}); 
    $(this).next().find(".viewer-border").removeAttr("style"); 

    $(this).addClass("active"); 
    $(this).next().addClass("active"); 
}); 
+0

非常类似的问题:http://stackoverflow.com/questions/15575993/how-to-add-delay-to -jquery-mouseover – Stryner 2014-08-28 16:49:54

回答

2

设置一个计时器,在您希望的延迟后运行您的代码。假如您要取消悬停出(1000毫秒的延迟如图所示)的操作:

 var id; 
     $(".home-furniture .menu > ul > li > a").hover(function (e) { 
      e.preventDefault(); 
      id = setTimeout(function() { 
       $(".home-furniture .menu > ul > li > a").removeClass("active"); 
       $(".home-furniture .menu > ul > li > .gallery").removeClass("active"); 
       $(".home-furniture .menu > ul > li > div .viewer-border").css({ "left": "-9999em" }); 
       $(this).next().find(".viewer-border").removeAttr("style"); 
       $(this).addClass("active"); 
       $(this).next().addClass("active"); 
      }, 1000); 
     }, 
     function (e) { 
      clearTimeout(id); 
     }); 
+0

嗨..我试着这样做,整个动画停止 – biky 2014-08-29 11:35:39