我正在構建一個簡單的基於Web的文本編輯器,並試圖實現類似於「保存更改?」的內容。當用戶嘗試打開文件並且當前文件未保存更改時,會出現對話框。jQuery UI,等待對話響應
的代碼是這樣的:
function openFile() {
if (hasChanges === true) {
$("#save-changes-dialog).dialog("open");
}
// file opening stuff goes here
}
這顯然是行不通的,因爲會發生什麼是對話框被打開,然後打開該對話框,而不是等待後,文件打開代碼只是執行權獲取該對話的結果。
解決此問題的最佳方法是什麼?我試圖動態地改變按鈕在「保存更改」對話框中所做的操作,以便通過對話框按鈕本身調用文件打開代碼,但它看起來有點亂,而且我也遇到了計時問題,因爲有些AJAX調用。
這看起來似乎會經常出現,但我似乎無法找到明確的答案來解決問題。謝謝你的幫助!
那麼最好的方法是動態地改變按鈕在對話框中的作用,這取決於它從哪裏被調用?例如,他們將執行不同的操作,無論是打開文件,創建新文件還是導航離開頁面。或者應該爲每種情況單獨進行對話?另一個問題是,如果包含更改的文件是未保存的文件,則必須調用「另存爲」對話框,然後動態更改該對話框的按鈕處理程序。它只是看起來像一個凌亂,滑坡... – ARW
我會有單獨的對話框,以便我可以有不同的標題,按鈕上的不同文本和其他特定的東西; (從UX的角度來看)要求「保存/取消」更好?和「加載/取消?」而不是通用的「確定/取消」,如果你通過指定一個對話框來完成所有這些工作,那就太麻煩了。但是,除了基本的'prompt'()'和'alert()'之外,在JS中有一個阻塞對話框是絕對不可能的(你正在提議的)。你必須去異步,並使用回調。 JS不等人。 – Amadan