jQuery - 链接*仅*在一段时间后才工作
我有一个链接:
<a href="#" id="link">Here's my link</a>
这不是一个正常的可点击链接,它在 jQuery 中编码如下:
$("#link").hover(function(e) {
e.preventDefault();
$("#tv").stop().animate({marginLeft: "50px"});
$("#tv img)").animate({opacity: 1});
})
因此,在悬停不可点击的链接后,#tv 的边距和不透明度会发生变化。
有什么方法可以让此功能仅在用户将指针悬停在链接区域超过两秒后才起作用?
因为现在一切都是实时发生的。
我知道有 delay()
,但它不起作用,因为它只是延迟动画,在这种情况下,如果指针超过了时间,我不希望执行任何操作不到两秒。
没有循环可以吗?
I have a link:
<a href="#" id="link">Here's my link</a>
This is not a normal clickable link, it's coded in jQuery like this:
$("#link").hover(function(e) {
e.preventDefault();
$("#tv").stop().animate({marginLeft: "50px"});
$("#tv img)").animate({opacity: 1});
})
So after hovering unclickable link there's change of #tv's margin and opacity.
Is there any way of making this work only after the user hovers the link area with pointer for more than two seconds?
Because now everything happens in real time.
I know there's delay()
, but it doesn't work because it just delays the animation and in this case I don't want any action if the pointer is over for less than two seconds.
Possible without a loop?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您所追求的称为 hoverIntent。
What you're after is called hoverIntent.
你只需要一个
setTimeout()
来延迟代码,与 aclearTimeout()
一起清除它,如果用户2 秒内离开链接。示例: http://jsfiddle.net/mNWEq/2/
You just need a
setTimeout()
to delay the code, along with aclearTimeout()
to clear it if the user leaves the link within 2 seconds.Example: http://jsfiddle.net/mNWEq/2/