Jquery - 延迟mouseout事件

Min*_*ure 3 html javascript jquery javascript-events mouseout

有没有办法让jquery在mouseout事件被触发之前等待一段时间?

目前它发射太早了,我宁愿在评估鼠标之前等待500ms.我在下面使用的代码示例.

$('.under-construction',this).bind({
    mousemove: function(e) {
        setToolTipPosition(this,e);
        css({'cursor' : 'crosshair' });
    },
    mouseover: function() {
        $c('show!');
        showUnderConstruction();
    },
    mouseout: function() {
        $c('hide!');
        hideUnderConstruction();
    },
    click: function() {
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

有没有jquery方式来做这个或我自己必须这样做?

Fra*_*ino 8

将内部逻辑拆分mouseout为另一个函数.在mouseout甚至调用此函数与setTimeout("myMouseOut", 500).如果用户移动到新元素,您可以将mouseover事件与a组合clearTimeout()以重置计时器.


Sam*_*son 5

您总是可以将逻辑包装在一个setTimeout()函数中.

mouseout: function() {
  setTimeout(function(){
    $c('hide!');
    hideUnderConstruction();
  }, 500);
}
Run Code Online (Sandbox Code Playgroud)