Я новичок в очередях jQuery, поэтому могу использовать некоторую помощь здесь.Сложно создать демонстрационную страницу для этой ситуации, поэтому я надеюсь, что вы можете следовать на основании моего описания.
Я кодирую inline-редактирование на своем сайте сообщества фотографий.Пользователи могут щелкнуть заголовок или описание изображения и просто начать печатать.Когда они выходят из поля или нажимают [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 секунды, пока текст ошибки отображается.Это работает нормально, но только в первый раз.Если я еще раз отредактирую сброшенный заголовок и снова принудительно введу неверное значение, появится текст ошибки, но кажется, что сброс никогда не вызывается.Через логирование я подтвердил, что обработчик ошибок вызывается второй раз, но не код сброса. Почему бы и нет?