Jquery - 延迟mouseout事件

时间:2010-02-15 16:38:49

标签: javascript jquery html 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;
    }
});

有没有jquery方法可以做到这一点,还是我必须自己做?

3 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:5)

您始终可以将逻辑包装在setTimeout()函数中。

mouseout: function() {
  setTimeout(function(){
    $c('hide!');
    hideUnderConstruction();
  }, 500);
}

答案 2 :(得分:3)

您可以查看hoverIntent plugin,让您定义一些有助于鼠标输入/输出交互的变量