2013-07-09 4 views
0

Решенных - Ожидание два дня для себя, принятьдиалога Reposition jQueryUI внутри диалогового

Использование диалога jQueryUI для отображения формы ввода данных.

Когда пользователь нажимает NEXT, изменяется размер диалогового окна (добавляется несколько элементов управления), и я хочу переместить диалог в верхнюю часть окна.

Кнопка СЛЕДУЮЩИЙ оценивается внутри buttons{} области .dialog:

$('#new_contact').dialog({ 
    autoOpen: false, 
    modal:true, 
    title: 'Enter contact information:', 
    width: 800, 
    buttons: { 
     Next: function() { 
      var vet = verify_dialog_fields(); 

      if (second_time_thru == 0) { 
==> ==> ==>  $('#new_contact').dialog("option", "position", 'top'); 
       ask_choose_projects(); 
       return false; 
      } 
--= SNIP! =-- 

Диалог не приложена, так как команда position неправильно или я имею что-то еще не так.

Может ли кто-нибудь увидеть, что я сделал не так из этого неполный фрагмент кода?

Я подозреваю, что сделал что-то неправильно, так как я вызываю .dialog («option») внутри самого .dialog().

По крайней мере, мне нужно подтверждение, что опция position, обозначенная тремя стрелками, верна.

ответ

0

Имеет смысл, что невозможно изменить параметры диалога внутри инициализации самого диалога, но этот обход сделал трюк.

Это правда клудж, но он работал:

  1. Создать фиктивный <span id="dummy"></span> элемент в главном документе
  2. Добавить JQuery код, чтобы изменить форму, если продолжительность #dummy щелкают
  3. В функцию для кнопки Next:, вызвать щелчок на элементе #dummy.

Новый HTML:

<span id="dummy"></span> 

Пересмотренный код для следующей функции:

$('#new_contact').dialog({ 
    autoOpen: false, 
    modal:true, 
    title: 'Enter contact information:', 
    width: 800, 
    buttons: { 
     Next: function() { 
      var vet = verify_dialog_fields(); 

      if (second_time_thru == 0) { 
==> ==> ==>  $('#dummy').trigger('click'); 
       ask_choose_projects(); 
       return false; 
      } 
--= SNIP! =-- 

Новый JQuery код:

$('#dummy').click(function() { 
    $('#new_contact').dialog("option", "position", 'top'); 
}); 
Смежные вопросы