有没有办法让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方法可以做到这一点,还是我必须自己做?
答案 0 :(得分:8)
将mouseout
内的逻辑拆分为另一个函数。在mouseout
中甚至使用setTimeout("myMouseOut", 500)
调用此函数。如果用户移动到新元素,您可以将mouseover
事件与clearTimeout()
组合以重置计时器。
答案 1 :(得分:5)
您始终可以将逻辑包装在setTimeout()
函数中。
mouseout: function() {
setTimeout(function(){
$c('hide!');
hideUnderConstruction();
}, 500);
}
答案 2 :(得分:3)
您可以查看hoverIntent plugin,让您定义一些有助于鼠标输入/输出交互的变量