load() to jqueryui диалог убивает диалог

Просто быстрый вопрос:

Я могу сделать .load() для диалогового окна jQueryUI, которое отлично работает. Одна проблема заключается в том, что после этого я не могу использовать кнопку закрытия, но кнопка X в правом верхнем углу работает правильно.

При закрытии (по X) я не могу повторно открыть диалог с помощью кнопки span.

Ах да, и кнопка «Да» с прикрепленным обработчиком отправки тоже отлично работает...

Что пойдет не так?

<span id='editOpener'>Open dialog</span>

<div id='edit' style='text-align: center; display: none;'>Loading...</div>

<script type='text/javascript'>
  $('#edit').dialog({ modal: true, draggable: false, resizable: false, width: 900, height: 500, autoOpen: false, buttons: { 'close': { text: 'Close', click: function() { $(this).dialog('close'); } }, 'submit': { text: 'Yeah', click: function() { $(this).find('form').trigger('submit'); } } } });")
  $('#editOpener').click(function() { $('#edit').load('hi.asp?p=1&r=6'); $('#edit').dialog('open'); return false; });")
</script>

person MicBehrens    schedule 16.12.2011    source источник


Ответы (1)


Попробуйте изменить эти строки:

$('#editOpener').click(функция() {

  $('#edit').load('hi.asp?p=1&r=6');
  $('#edit').dialog('open');

});

To:

$('#editOpener').click(функция() {

  $('#edit').load('hi.asp?p=1&r=6', function(){
     $('#edit').dialog('open');
  });

});

person epignosisx    schedule 16.12.2011
comment
Затем диалоговое окно не открывается, но load() выполняется правильно, точно так же, как когда я закрывал его с помощью кнопки X, а затем пытался открыть его снова... (я помещал alert() внутри страницы загрузки для проверки исполнения) - person MicBehrens; 16.12.2011
comment
Вы должны дождаться загрузки содержимого, прежде чем открывать диалоговое окно. Это позволяет jQueryUI правильно получать размеры содержимого и позиционировать его. - person epignosisx; 16.12.2011
comment
Да, я понял, увидев ваш ответ. Но это все равно не работает... Заменяет ли load() DOM на DOM с загруженной страницы? Поскольку ни один из исходных скриптов на странице не выполняется после выполнения load() - person MicBehrens; 16.12.2011