Jquery,我该如何减少闪烁?

时间:2011-03-08 11:29:57

标签: jquery

http://jsfiddle.net/caMvN/1/

当您将鼠标悬停在绿色区域上时,它应显示两个文本字段。现在我想要实现的是,当我将鼠标悬停在绿色区域或输入字段上时,它们应该在没有闪烁的情况下可见。此外,如果在文本字段中输入了一些文本,并且我将其悬停,则在字段消失之前应该有延迟或计时器....

知道如何用jquery做到这一点?

2 个答案:

答案 0 :(得分:2)

要防止闪烁,只需使用mouseentermouseleave代替:

$("#back2").mouseenter(function(){
  $("form").fadeIn(100);
}).mouseleave(function(){
    $("form").hide();
});

对于延迟,您可以执行以下操作:

$("#back2").mouseenter(function(){
  $("form").fadeIn(100);
}).mouseleave(function(){
    if ($('#inp1').val() != ""){
        setTimeout(function() {$("form").hide()}, 500);
    } else {
        $("form").hide();
    }
});

Here's一个工作示例

使用hover更新以回复以下评论:

$("#back2").hover(function(){
    $("form").fadeIn(100);
}, function(){
    if ($('#inp1').val() != ""){
        $setTimeout(function() {$("form").hide()}, 500);
    } else {
        $("form").hide();
    }
});

答案 1 :(得分:1)

将您的第一行更改为:

$("form").hide().mouseover(function(){$(this).show();});