2011-01-17 6 views
0

jQueryキューが初めてのため、ここでいくつかのヘルプを使用できます。このような状況のためにデモページを設定するのは難しいので、私の説明に基づいてあなたが従うことを願っています。jQueryキュー内の遅延効果の理解問題

私は写真コミュニティのウェブサイトにインライン編集をコーディングしています。ユーザーは画像のタイトルや説明をクリックして入力を開始できます。彼らがフィールドを終了するか、[enter]を押すと、その値が保存されます。このため私はjEditableプラグインを使用しています。これはすばらしいです。

問題が発生しました。エラー処理に関係します。値を無効にすると、入力を検証するバックエンドスクリプトがエラーで返される可能性があります。このエラーは、jEditableのエラーハンドラでキャッチします。このようなエラーは、「タイトルは空ではありません」とすることができます。

私がしたいのは、タイトルフィールドをエラーテキストで上書きすることです。次に、3秒後にエラーテキストが消え、編集前の元の値が表示されます。私は実際に次のコードを使用してこの作業をしています。私は関連部分のみを示していることに注意してください:あなたが見ることができるようにエラーテキストが表示されている一方で、元の値のリセットは3秒遅れている

onerror: function(settings, original, xhr) { 
console.log('error'); 

// set error text 
$("#" + original.id).html('<span class=\"error\">' + xhr.responseText + </span>').delay(3000).queue(function() { 
original.reset(); 
}); 
} 

。これは正常に動作していますが、初めての場合です。リセットしたタイトルを再度編集して強制的に無効な値を入力すると、エラーテキストが表示されますが、リセットが呼び出されないようです。ロギングを通じて、エラーハンドラがリセットコードではなく2回目に呼び出されることを確認しました。 なぜですか?

答えて

0

自分の質問に答える:それは結局のところ、私はそれを呼び出した後にリセットをデキューする必要があります。

original.reset(); 
$(this).dequeue(); 

は今罰金作品!