第一次鼠标悬停时,jQuery委托mouseover mouseout事件未触发

时间:2012-02-28 06:37:14

标签: jquery

如果我鼠标悬停并将鼠标输出.activate_tooltip一次,则此后继续工作。但第一次鼠标悬停不会触发任何操作。有人知道是什么原因造成的吗?

$('.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>

2 个答案:

答案 0 :(得分:0)

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

使用mouseentermouseleave代替mouseovermouseout

答案 1 :(得分:0)

想出来。由于某种原因,clearTimeout导致了这个问题。当我使用.hover事件时,它工作,但在委托中注释它似乎解决了问题。不知道为什么!