Как выполнить функцию после открытия диалогового окна jQueryUI?



На моей веб-странице есть несколько ссылок, таких как:

<div id="toolbarButtons">
    <a href="actualites/addLink" id="liens" rel="lien" title="Insérer un lien" class="toolbarButton"><span><img src="pub/struct/picto/icon_toolbar-link.gif" alt="Liens" />Lien</span></a>
    <a href="actualites/addImage" rel="image" title="Insérer une image" id="img" class="toolbarButton"><span><img src="pub/struct/picto/icon_toolbar-img.gif" alt="Liens" /> Image(s)</span></a>
</div>
<div id="dialogbox"></div>

Прежде всего я инициализирую свое диалоговое окно, вызывая:

initDialog : function() {
    $('#dialogbox').dialog({
        bgiframe:true,
        autoOpen:false,
        width:500,
        modal:true
    });
}

Затем я прикрепляю событие The dialog on click:

$('.toolbarButton').click(function(e){
            e.preventDefault();
            actu.dialogManager($(this));
});

dialogManager : function(elem) {

    elem.blur();
    var title   = elem.attr('title');
    var href    = elem.attr('href');
    var rel     = elem.attr('rel');

    $('#dialogbox').dialog('option','title',title);

    if(rel == 'lien')
    {
         $('#dialogbox').dialog('option','buttons',{
            'Add' : function(){
                            //TODO
            },
            'Cancel' : function(){
                $('#linkText').val('');
                $('#linkUrl').val('');
                $(this).dialog('close');
            }
        });

        $('#dialogbox').load(href).dialog('open');

    }
}

Как вы можете видеть , содержимое диалогового окна извлекается с помощью ajax. Диалог содержит некоторые входные данные. У меня есть последняя функция, которая должна редактировать содержимое входных данных, но я не знаю, как и где ее вызвать. Он должен быть вызван после открытия диалога, чтобы быть эффективным. Как я могу это сделать это ?

Делаю это только после

$('#dialogbox').load(href).dialog('open');

Не будет работать из-за асинхронной загрузки (вызывается до полной загрузки диалогового окна).

Спасибо за помощь.

109   2  

2 ответов:

Вы можете что-то сделать, когда откроется диалоговое окно.

initDialog : function() {
  $('#dialogbox').dialog({
      bgiframe:true,
      autoOpen:false,
      open: function() {
          // do something on load
       },
      width:500,
      modal:true
  });
}

Можете ли вы сделать что-то подобное?

$('#dialogbox').load(href, function() {
   //your edit function?
   $(this).dialog('open');
   });

Эта функция будет вызвана, когда загрузка будет завершена.

    Ничего не найдено.

Добавить ответ:
Отменить.