2012-02-28 151 views
0

如果我鼠标悬停和鼠标.activate_tooltip一次,它继续工作。但第一个mouseover不会触发任何操作。任何人知道是什么原因造成的jQuery委托鼠标悬停鼠标事件没有触发第一次鼠标悬停

$('.task_box').delegate('.activate_tooltip', 'mouseover mouseout', function(event) { 

      if (event.type == 'mouseover') { 

        clearTimeout(timeOut); 
        $(this).prev().find('.tooltip_2').show(); 

      } else if (event.type == "mouseout") { 

       timeOut = setTimeout(hideToolTip, 0); 

      }  

}); 



<div class="edit_task_icon_div" style="position:relative;"> 

    <div style="position:relative"> 
     <div class="tooltip_2" style="position: absolute; top: 20px; left: -6px;"> 
      <div class="tooltip_2_text">Edit</div> 
     </div> 
    </div> 

    <a href="#" id="edit_{{task.id}}" class="pencil_button activate_tooltip"></a> 
</div> 

回答

0

想通了。 clearTimeout由于某种原因导致该问题。它在我使用.hover事件时起作用,但是在代理中评论它似乎解决了这个问题。不知道为什么!

0

更改此event.type="mouseout"event.type=='mouseout'

使用mouseentermouseleave,而不是mouseovermouseout

+0

哎呀,忽略了。尽管如此,仍然没有解决问题。 – ThinkingInBits 2012-02-28 06:40:54

+0

@ThinkingInBits:使用mouseenter和mouseleave,而不是mouseover和mouseout – 2012-02-28 06:44:47

+0

与mouseenter和mouseleave相同的问题 – ThinkingInBits 2012-02-28 06:44:55