2010-03-30 31 views
0

我想在接收到ajax響應後更新jQuery對話框。如何在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

是不是有一個簡單的hide()或close()方法來關閉對話框? – 2010-03-30 08:12:05

+0

我想要做的是添加一個OK按鈕到已經可見的模式對話框中 – bogumbiker 2010-03-30 08:41:40

回答

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(); 

可選方案,您可以提供一個寬鬆的標識符動畫不隱藏進程。

相關問題