我正在使用 keyup 函数验证一些文本输入,并且我想在该框被认为已验证时运行复选标记的动画。
问题是,只要我点击任何输入,动画就会开始。如果您在单击后立即键入一次,您将看到动画发生。我假设动画开始了,因为我正在添加类 on keyup
,它本质上是在您释放鼠标单击它之后触发的。还有其他方法吗?
- 我在测试时将时间增加到 5 秒
- 为什么它会触发所有 3 个动画,因为我正在使用
each
和next
功能。 - 有没有办法让动画开始
keyup
。
我的代码要点如下,请在此处查看实时版本:http: //jsfiddle.net/MhMCz/26/
$(':input').each(function(){
var values = $(this).attr('value');
$(this).keyup(function(){
if( $(this).val() !== '' && $(this).val() !== values) {
$(this).addClass('animated');
$(this).next('span').html("<img src='http://png.findicons.com/files/icons/1581/silk/16/tick.png' />");
}
else {
$(this).removeClass('animated');
$(this).next('span').html('');
}
});
if ( $(this).next('span').hasClass('animated') ) { }
else {
$(this).next('span').animate({
marginLeft: '10px'
}, 5000, function(){
alert("animation complete")
});
}
)};