JQuery鼠标输出超时

JQuery鼠标输出超时,jquery,mouse,effects,fade,mouseenter,Jquery,Mouse,Effects,Fade,Mouseenter,以前也处理过类似的问题,但我认为我的问题略有不同,因为使用了bind()函数。无论如何 $('.overlay').bind("mouseenter",function(){ $(this).fadeTo('slow', 0); }).bind("mouseleave",function(){ setTimeout(function() { $(this).fadeTo('slow', 1); }, 2000); }); 我想淡出“mous

以前也处理过类似的问题,但我认为我的问题略有不同,因为使用了bind()函数。无论如何

$('.overlay').bind("mouseenter",function(){
  $(this).fadeTo('slow', 0);
}).bind("mouseleave",function(){                
  setTimeout(function() { 
    $(this).fadeTo('slow', 1);
  }, 2000);
});
我想淡出“mouseenter”上的覆盖,但只在“mouseleave”之后的2000毫秒内淡出

我还有一个问题:当.overlay div淡出时,我需要能够单击它下面的内容,即我需要div完全消失或向下移动z索引堆栈。但是,如果我尝试将其添加到中,脚本会认为鼠标离开了.overlay div,因此.overlay会淡入


出于同样的原因,我不能使用fadeOut()和fadeIn()。

当超时触发时
这将不是您所期望的。可以创建如下所示的闭包:

            $('.overlay').bind("mouseenter",function(){
                    $(this).fadeTo('slow', 0);
                    }).bind("mouseleave",function(){
                    var $this = $(this);                               
                    setTimeout(function() { 
                            $this.fadeTo('slow', 1);
                            }, 2000);
            });

两个问题:
var$this=…
中的“$”有什么意义吗?你在这里找到的原始代码中,
$(this)
指的是什么?不,
var$this
中的
$
只是让变量看起来更像jQueryish。
$
字符在javascript中没有特殊意义。它只是jQuery.works中“jQuery”的别名,很好,谢谢-我现在看到setTimeout函数中包装的$(this)引用了一些不同的东西。好的,我还有一个问题:当.overlay div消失时,我需要能够单击它下面的内容,即我需要div完全消失或向下移动z索引堆栈。但是,如果我尝试将其添加到中,脚本会认为鼠标离开了.overlay div,因此.overlay会淡入。出于同样的原因,我不能使用fadeOut()和fadeIn()。添加了一个附加问题。。。