嗨,大家好,jQuery的延迟和KEYUP
我想要做的是当有人输入到文本字段KEYUP,一旦他们已经完成打字显示动画GIF,GIF将消失并显示消息“保存”几秒钟,然后消失。
什么我迄今所做的是:
if ($('.gallery_items li input').length > 0) {
$('.gallery_items li input').keyup(function() {
var li = $(this).parent();
li.children('.gallery_saving').removeClass('dn');
var identity = li.attr('id').split('_');
var v = $(this).val();
var url = '/caption/id/' + identity[1];
$.post(url, { caption : v });
$.delay(500).li.children('.gallery_saving').delay(500).html('Saved...').delay(500).addClass('dn');
return false;
});
}
凡类“gallery_saving”具有指定为背景图像和阶级“DN” gif动画有简单的样式表“显示:无”。 最初'gallery_saving'也有类'dn' - 以便它不可见,当有人开始键入类'dn'时被删除 - 显示加载器。
你明明看到问题已经与:
$.delay(500).li.children('.gallery_saving').delay(500).html('Saved...').delay(500).addClass('dn');
,我知道这是错的,但无法弄清楚如何做到这一点 - 任何人都可以帮忙吗?
你能提供HTML来处理吗? – 2011-04-19 09:38:14
小心你对['.delay()'](http://api.jquery.com/delay/)的理解,它的确如下:_“设置一个计时器来延迟队列中后续项目的执行”_ - 但它是为了效果队列,而不是一切。看看[这里的例子](http://jsfiddle.net/xG8Hf/3/),你会看到['.show()'](http://api.jquery.com/show)没有任何参数不是一个效果,所以不会延迟,''.css()'](http://api.jquery.com/css)效果也不会延迟,但['.slideDown( )'](http://api.jquery.com/slidedown/)是一种效果,所以它会延迟! – Scoobler 2011-04-19 11:23:54