我有这个功能,我想知道为什么的setTimeout不工作:JS的setTimeout和jQuery的功能
$(document).ready(function() {
$('.sliding .text').css("top","130px")
$('.sliding').mouseenter(function() {
mouseOverTimer = setTimeout(function() {
$(this).find('.text').animate({"top": "0"}, 200);
}, 500);
})
.mouseleave(function() {
$(this).find('.text').delay(500).animate({"top": "130px"}, 400);
});
});
我试过包装在超时MouseEnter事件,但是这似乎并不像一个伟大的想法。我只想让mouseenter上的动画在鼠标悬停至少半秒后才能工作。
另外,有没有更好的方式在jQuery中做到这一点?
答案就在这里......然而,你可能也想看看本alman的油门/防抖动jQuery插件:http://benalman.com/projects/jquery-油门反弹插件/ – gnarf 2011-02-23 16:27:40
哦,我明白了。谢谢你的答案。无法选择$(self)然后成为一个问题,因为我在使用此函数的单个页面上有多个元素。 – theorise 2011-02-23 16:32:44
没关系,我可以在setTimeout之外设置一个变量,谢谢! – theorise 2011-02-23 16:36:15