2014-09-19 102 views
0

我检查了几个帖子,并试图把停止()或过滤器(':不((:动画)'),以避免在我的悬停排队动画,但它doesn没有工作。每次我尝试在代码中添加这些函数时,该页面将不会再加载。jquery停止排队而动画没有完成悬停

<div id="competences"> 
    <div id="logoComp"> 
     <div> 
      <img id="devLogo" src="img/logoDev.png" /> 
      <p>Developpement</p> 
      <p>- HTML/CSS -</br> 
      - Javascript -</br> 
      - PHP -</br> 
      - Java -</p> 
      </div> 
      <div> 
       <img id="responsiveLogo" src="img/responsive.png" /> 
       <p>Responsive</p> 
       <p>Ce site est responsive et la plupart de mes projets le sont également.</p> 
      </div> 
      <div> 
       <img id="logoPrint" src="img/logoPrint.png" /> 
       <p>Graphisme</p> 
       <p>Photoshop, Illustrator, InDesign, Blender, After Effects, Premiere</p> 
      </div> 
     </div> 
    </div> 

代码:

$(document).ready(function() { 

// when hover over the selected image change the opacity to 1 
    var n = $("#competences").length; 

    for(i=0; i<n; i++){ 
     $('#logoComp div').each(function(){ 
     $(this).hover( 
     function(){ 
      $(this).find('img').hide("slow"); 
      $(this).find('p').delay(500).show("slow"); 

     }, 
     function(){ 
      $(this).find('p').hide("hide"); 
      $(this).find('img').delay(500).show("slow"); 
     } 
     ); 
    }); 
} 
}); 
+0

为什么你一)添加处理程序'(jQuery不需要这样做)和b)在一个循环中执行它(不止一次添加处理程序!) – 2014-09-19 15:58:19

+0

也是唯一的,所以你只能迭代一次,无论页面上有多少? – 2014-09-19 16:00:45

回答

0

你需要简化你的代码并停止使用标识,因为他们必须在一个网页上是唯一的(jQuery的只有“看到”的第一个,如果你有倍数)。改用类。

您还需要决定何时stop()现有的动画或他们将链接在一起。 stop()刷新该元素的动画队列:

$(document).ready(function() { 

    // when hover over the selected image change the opacity to 1 
    $(".competences .logoComp div").hover(
    function() { 
     $(this).find('img').stop().hide("slow"); 
     $(this).find('p').stop().delay(500).show("slow"); 

    }, 
    function() { 
     $(this).find('p').stop()hide("hide"); 
     $(this).find('img').stop().delay(500).show("slow"); 
    }); 
}); 

的jsfiddle:http://jsfiddle.net/zymje5Lq/1/

这是不完美的,但避免了在`每个出现的一些问题:)

+0

当我尝试您的代码时,我的页面将不会再加载。 – Malane 2014-09-23 08:44:31

+0

哦nvm没有看到你忘了。停止()后。现在的问题是我的动画中途停下来,而我的img不再重新出现,而是隐藏起来。 – Malane 2014-09-23 08:54:10