我想在收到ajax响应后更新jQuery对话框。
这是我的定义
var $dialog = jQuery('<div>Wait</div>') .html('Sending your message...<img src="../images/AjaxWait.gif" style="float: left; padding-left: 50px;"/>')
.dialog({
modal: true,
width: 160,
autoOpen: false,
resizable: false,
draggable: false,
});
$dialog.siblings(".ui-dialog-titlebar").hide();
在ajax发送之前:
$dialog.dialog('open').dialog('option', 'height', 50);
一旦收到ajax回复,我正在尝试跟随:
jQuery('.ui-dialog-content').dialog('option', 'buttons',
{ "Ok": function() { jQuery(this).dialog('close'); } } );
....但没有任何反应...... 任何想法?
答案 0 :(得分:0)
我认为您无法以这种方式修改现有对话框。要完成您面临的任务,只需在第一个调用中包含该按钮,但立即隐藏它。一旦ajax请求完成,只需取消隐藏按钮。要获得适当的视觉体验,只需使用隐藏/取消隐藏整个按钮窗格:
var $dialog = jQuery('<div>Wait</div>') .html('Sending your message...<img src="../images/AjaxWait.gif" style="float: left; padding-left: 50px;"/>')
.dialog({
modal: true,
width: 160,
autoOpen: false,
resizable: false,
draggable: false,
buttons: { "Ok": function() { jQuery(this).dialog('close'); }
})
;
// hide buttons
$dialog.children('.ui-dialog-buttonpane').hide();
在ajax完成的事件处理程序中,只需执行
// unhide buttons
$dialog.children('.ui-dialog-buttonpane').show();
您可以选择提供缓动标识符来设置取消隐藏进程的动画。