2011-03-15 36 views
0

我正在使用jquery對話框,我不得不做出關閉當前對話框的「ok」按鈕。我設法做到這一點:如何爲jquery ui對話框定義兩個不同的關閉行爲?

buttons: {"OK": function() { $(this).dialog("close"); }} 

到目前爲止,這麼好。

問題是,最初的關閉按鈕(在右上角)不應再關閉對話框,而是詢問您是否要清除對話框內的表單元素(並調用一個函數來執行此操作);我不能使用「beforeClose」,因爲它會影響ok按鈕的行爲。

回答

0

我不知道是否有可能捕捉關閉按鈕被點擊或沒有(我無法找到任何東西,我以前從來沒有這樣做過)。但是,另一種選擇是完全隱藏關閉按鈕,並自行向用戶提供按鈕。像這樣的東西...

$("#dialog-message").dialog({ 
    modal: true, 
    buttons: { 
     OK: function() { 
      $(this).dialog("close"); 
     }, 
     Close: function() { 
      // Do stuff... 
     } 
    }, 
    beforeClose: function(event, ui) {}, 
    closeOnEscape: false, 
    open: function(event, ui) { 
     // This hides the close button. 
     $(this).parent().children().children('.ui-dialog-titlebar-close').hide(); 
    } 
}); 
+0

謝謝你的回答,但我忘了說,用戶想要清潔但不要關閉按鈕在右上角(不要問我爲什麼哈哈)。我必須從字面上顛倒兩個按鈕的行爲。 – Willy 2011-03-15 15:11:16