2012-01-16 18 views
1

イベントが積み重なる問題があります。私は大きなアイコンの行列を持っています。マウスオーバーすると、そのうちの1つがテキストボックスが滑り落ちます。最初の試みではすべてが素晴らしいですが、同じオブジェクト(イベントの衝突が発生した場合)でマウスオーバーしてもう一度マウスを動かすと、ボックスが下にスライドしているか、まったく表示されず、矢印ポインタが消えてしまいます。私がマウスオーバーすると、より多くのアラートが表示されます(3マウスオーバー= 3アラート)。ここでjQuery複数のイベントが同時に発生しています

は私のhtmlです:ここでは

<div class="app"> 
    <a href="#appinfo-1"><img src="images/app001.png" alt="" /></a> 
    <div class="apparrow"></div> 
    <div id="appinfo-1" class="appbody">        
     <div><img src="images/apptop.png" alt="" /></div> 
     <div class="appwrapper"> 
      <div class="leftappborder"></div> 
      <div class="appcontent"> 
       <h1>Web Based Administration (CMS)</h1> 
       <p class="apptext">Lorem ipsum dolor sit amet. </p> 
       <p class="incltick">Included</p> 
      </div>         
      <div class="rightappborder"><!-- --></div> 
     </div>      
     <div><img src="images/appbottom.png" alt="" /></div> 
    </div> 
</div> 

は私のjQueryのです:

$(function(){ 
$(".app > a").mouseover(function() { 

//some code deleted here 

    var currentactive = $(this).attr("href");  
     // activate|deactivate infoblock 
     $(currentactive).parent(".app").hover(
      function() { 
       $(currentactive).queue(function() { 
        $(this).siblings(".apparrow").slideToggle(150); 
        $(this).css({"visibility":"visible"}).slideToggle(800, incltick); 
        $(this).dequeue(); 
       });     
      },     
      function() { 
       $(currentactive).queue(function() { 
        $(this).css({"visibility":"hidden"}).slideToggle(800, incltick);       
        $(this).siblings(".apparrow").slideToggle(150); 
        $(this).parent(".app").animate({marginBottom:0 +"px"}, 800, defaultState); 
        $(this).dequeue(); 
       }); 
      } 
     ); 
    }  
}); 

});

+1

関連性の低いコードをすべて削除してください。 – cambraca

答えて

0

mouseoverの中に$(currentactive).parent(".app").hover(...と呼んでいます。

これは、あなたの上にマウスを重ねるたびに、hoverが追加されることを意味します。 3回以上マウスを動かすと3 hoverとなり、イベントは3回発生します。あなたは、再び発砲する予定の他のイベントの中にイベントを添付しないでください。あなたが本当にしなければならない場合は、フラグを設定し、それが一度だけ接続されるようにしてください。

+0

答えをありがとう、どのようにコードを記述しますか? mouseover、mouseout? –

+0

元気です、もう一度お試しください! –

関連する問題