jQuery 鼠标超时
类似的问题以前已经处理过,但我相信由于使用了 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-index 堆栈中向下移动。但是,如果我尝试添加此内容,脚本会认为鼠标已离开 .overlay div,因此 .overlay 会淡入。
出于同样的原因,我无法使用 fadeOut() 和 fadeIn()。
Similar problems have been dealt with before but I believe mine's slightly different owing to the use of the bind() function. Anyhow...
$('.overlay').bind("mouseenter",function(){
$(this).fadeTo('slow', 0);
}).bind("mouseleave",function(){
setTimeout(function() {
$(this).fadeTo('slow', 1);
}, 2000);
});
I want to fade out the overlay on "mouseenter", but only fade it back in 2000ms after "mouseleave".
I have an additional question: When the .overlay div fades out, I need to be able to click on what's beneath it i.e. I need the div to disappear completely or move down the z-index stack. However, if I try adding this in, the script thinks the mouse has left the .overlay div, so the .overlay fades back in.
For the same reason I can't use fadeOut() and fadeIn().
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当超时触发时,
this
将不会是您所期望的。您可以像这样创建一个闭包:When the timeout fires
this
won't be what you expect. You can create a closure like this: