キーアップ機能を使用していくつかのテキスト入力を検証していますが、ボックスが検証済みと見なされたときにチェックマークのアニメーションを実行したいと思います。
問題は、入力をクリックするとすぐにアニメーションが開始されることです。クリックしてすぐに1回入力すると、アニメーションが発生するのがわかります。クラスを追加しているため、アニメーションが開始されると想定しています。クラスはkeyup
、マウスを離してクリックした後にトリガーされます。それを回避する別の方法はありますか?
- テスト中に時間を5秒に増やしました
each
とnext
関数を使用しているのに、なぜ3つのアニメーションすべてがトリガーされるのですか。- でアニメーションを開始する方法はありますか
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")
});
}
)};