Как выполнить функцию после открытия диалогового окна 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');
Не будет работать из-за асинхронной загрузки (вызывается до полной загрузки диалогового окна).
Спасибо за помощь.
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'); });Эта функция будет вызвана, когда загрузка будет завершена.
Comments