У меня есть форма с настройкой плагина проверки.Когда форма отправлена и содержит ошибки, я показываю поля с ошибками в диалоговом окне (не модальном).
Форма может быть очень длинной и очень быстрой (бизнес-требования продолжают добавлять поля), и я сделалполя errore'd в диалоговом окне, нажимаемые для прокрутки окна к полю в поле from и выделения полей.Диалоговое окно на этом этапе не закрывается.
Это диалоговое окно расположено по центру для начала, и как только пользователь начинает нажимать на ссылки, мне нужно переместить диалоговое окно с пути пользователя и выделить его (jQueryэффект) поля ниже.
Чтобы сделать это, я придумал следующий код, и диалог, кажется, оживляет вверх, но не вправо.Когда я меняю 'right' на 'left', он работает нормально.
Ниже приведен код и jsbin для игры с - http://jsbin.com/avigi3/4/
$('a.field').click(function(){
$(this).closest('.ui-dialog').animate( {
right : '0', /*left:'0' works fine here*/
top : $(window).scrollTop()
}, 'slow');
});
Я отладил код jQuery.animateи вот мои заметки:
- jQuery.animate () «начинается» с текущего значения свойства и постепенно анимируется до значения назначения, как передано. Например, в вызове top начинается с любоготекущее верхнее значение диалогового окна равно и сводится к scrollTop окна (который является видимой вершиной окна просмотра браузера).
- Теперь здесь кроется проблема.Даже если диалог выровнен по центру, его свойство 'right' не существует, так как jQuery-ui использует свойство 'left', чтобы центрировать (абсолютно позиционировать) диалог.А поскольку «правильного» не существует, последовательность анимации для «правильного», похоже, не работает.
Кто-нибудь сталкивался с этой проблемой?В любом случае, я мог бы сбросить «правильную» позицию диалога, чтобы он имел «некоторое» значение?Или я могу настроить диалоговое окно jQuery таким образом, чтобы оно анимировалось, когда позиция изменялась программно, а не вручную путем перетаскивания.
Спасибо,
-Сям