首先,我发现这个有点难以解释,因为英语不是我的母语。请原谅这个烂摊子。
我写了一个小通知函数,它在表单提交时触发。正常行为是:
当音符悬停时,它会扩展css-transition
。从逻辑上讲,它应该在用户按mouseleave
折叠之前淡出。
这就是我的问题:只要div被徘徊,我如何阻止执行fadeOut
语句?
我试过像
这样的东西if ($('#notification').hover()){
return ;
}
但当然,第一个陈述已经如此处所示:
我还尝试了其他一些内容,例如正在聆听hover
事件的单独脚本,然后调用$('#notification').show() ;
两者都不起作用。我知道这是推理中的一个简单错误,但是地狱,我被卡住了。
提前致谢。
答案 0 :(得分:1)
fadeIn
来电setTimeout
之后,其功能为:
.mouseleave
隐藏它。即:
$('#notification').fadeIn(500);
setTimeout(function() {
if (notification_is_collapsed)
$('#notification').fadeOut(500);
else
$('#notification').mouseleave(function() {
$('#notification').fadeOut(500);
});
}, 2000);
答案 1 :(得分:1)
悬停功能有两个参数:当鼠标进入时,以及鼠标熄灭时(http://api.jquery.com/hover/)
所以你可以这样做:
$('#notification').hover(
function() {}, function() {
$(this).delay(500).fadeOut(500);
});
这是你的jsfiddle更新:http://jsfiddle.net/6DsJb/1/