2014-08-28 268 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