设置JQuery动画中的超时
setTimeout in a JQuery animation
我在使用setTimeout()时遇到了问题。我希望在鼠标退出状态下,子菜单在间隔(500 毫秒)后向上滑动。但是 setTimeout() 不起作用。
就像这个链接一样:http://jsfiddle.net/felipepalazzo/Xyhvn/2/
代码:
(function($){
$.fn.showMenu = function(options){
var settings = $.extend({
height : '40px',
speed : '500',
heightx : '20px'
}, options || {});
return this.each(function(){
var elem = $(this);
var menu_timer;
elem.hover(function(){
$(this).stop().animate({'height' : settings.height}, settings.speed);
}, function(){
//setTimeout(function(){
$(this).stop().animate({'height' : settings.heightx}, settings.speed);
//},500);
});
});
};
})(jQuery);
这
超出了范围。
var that = this;
setTimeout(function(){
$(that).stop().animate({'height' : settings.heightx}, settings.speed);
},500);
使用 delay()
所以例如
$(this).delay(500).stop().animate({'height' : settings.heightx}, settings.speed);
我认为问题依赖于元素$(this)
,当您在setTimeout函数内时,元素this
就不一样了。为什么不尝试将元素保存在 var 中然后执行函数
var foo = this;
setTimeout(function(){
$(foo).stop().animate({'height' : settings.heightx}, settings.speed);
},500);
相关文章:
- 如何设置html元素填充的动画
- 如何使用动画实现纸张推车
- 如何在生成下载文件时显示加载动画
- 剑道网格jQuery动画()问题
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- jQuery Lazy加载动画滚动
- jquery动画可以通过编程链接吗
- Javascript将数学动画化
- 使用不同的超时对数组中的每个项目进行角度动画处理
- jQuery动画超时
- SVG 动画在加载设置超时时不会启动
- 设置JQuery动画中的超时
- 在动画设置超时后执行函数
- 具有多个设置超时的 JavaScript 动画
- 如何在鼠标悬停时停止设置超时功能中的动画
- jQuery动画到底后超时函数
- 防止过多点击动画的超时功能
- 地图上谷歌标记的动画加载超时
- 如何使用jquery/javascript在悬停或超时时设置动画
- 谷歌标记下降动画与超时