JQuery鼠标输出超时
以前也处理过类似的问题,但我认为我的问题略有不同,因为使用了bind()函数。无论如何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
$('.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()。添加了一个附加问题。。。