jQueryUI: определение размера диалога в диалоге? - PullRequest
0 голосов
/ 08 декабря 2011

Если вы открываете диалоговое окно, когда оно уже отображается, то по умолчанию второе диалоговое окно не будет расширяться за ширину первого диалогового окна.Это верно, даже если второе диалоговое окно фактически не заключено в первое диалоговое окно (я получаю второе диалоговое окно, щелкая ссылку в первом диалоговом окне).

Я могу установить явную ширину во втором диалоговом окне, ноэто не идеально.Я действительно хочу, чтобы он автоматически изменял размер содержимого (квазипартикельный множественный выбор), который шире, чем первый / фоновый диалог.С явной шириной во втором диалоге я обычно получаю два набора полос прокрутки: одну на самом диалоге и на внутренней множественной выборке.

Обратите внимание, что я только попытался определить размер второго диалога, используя явныйwidth в вызове JS .dialog (), а не с помощью css (о котором я почти ничего не знаю).

Кто-нибудь знает, как автоматически изменить размер второго диалога?Спасибо.

РЕДАКТИРОВАТЬ

Некоторый код добавлен как предложено:

<div id="dialog-top" title="Tab data">
  <form>
    ...lots of stuff, including id 'addCodeButton', which
    ...pops up the second dialog
  </form>
</div> <!-- dialog-top -->

<div id="dialog-add-code" title="Code selector">
  <select id = "codes" ...etc... > 
    ...
  </select>
</div>

$(function(){
   $('#addCodeButton').click(function(){
      // problem: this 'open' will not set the width of the new dialog
      // wider than 'dialog-top' unless an explicit width is given
      // (see '460' below)
      $('#dialog-add-code').dialog('open');
      return false;
    });
});

var $dialog = $("#dialog-top").dialog({
  autoOpen: false,
  modal: true,
  buttons: {
    ...
  }
});

$('#dialog-add-code').dialog({
  autoOpen: false,
  width: 460,
  modal: false,
  buttons: {
    ...
  }
});

1 Ответ

1 голос
/ 08 декабря 2011

Я не уверен, что является причиной вашей проблемы.Вот скрипка, демонстрирующая, что то, что вы хотите, работает.

http://jsfiddle.net/brettzink/NASyR/

вы пытались .dialog({width:"auto"});?

...