0

私は jQuery キューを初めて使用するので、ここでいくつかのヘルプを使用できます。この状況ではデモ ページを設定するのは難しいので、私の説明に基づいてフォローしていただければ幸いです。

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

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

やりたいことは、タイトル フィールドをエラー テキストで上書きすることです。次に、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();
});
}

ご覧のとおり、エラー テキストが表示されている間、元の値のリセットが 3 秒間遅れます。これは正常に機能していますが、初めてです。リセットされたタイトルをもう一度編集して、無効な値を強制的に入力すると、エラー テキストが表示されますが、リセットが呼び出されることはないようです。ロギングを通じて、エラー ハンドラが 2 回目に呼び出されることを確認しましたが、リセット コードは呼び出されません。なぜだめですか?

4

1 に答える 1

0

私自身の質問に答える:リセットを呼び出した後、リセットをデキューする必要があることがわかりました:

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

今はうまくいきます!

于 2011-01-17T21:21:37.580 に答える