更新我有以下簡單的對話框:變量值不是內部對話
function confirmDialog(message, title) {
var returnvalue;
if ($("#confirmDialog").length == 0)
$('body').append('<div id="confirmDialog"></div>');
var dlg = $("#confirmDialog")
.html(message)
.dialog({
autoOpen: false,
minHeight: 50,
title: title,
show: {
effect: "explode",
duration: 250
},
hide: {
effect: "explode",
duration: 250
},
buttons: {
"OK": {
text: "OK",
class: "",
click: function() { returnvalue = true; $("#confirmDialog").dialog("close"); }
},
"Cancel": {
text: "Cancel",
class: "",
click: function() { returnvalue = false; $("#confirmDialog").dialog("close"); }
}
},
modal: true
});
$('#confirmDialog').dialog("open");
return returnvalue;
}
非常簡單的實現。我的問題是,當我運行腳本時,最後,當它返回變量returnvalue
時,這是undefined
,意思是它沒有將它設置爲true
或false
,這取決於哪個按鈕被點擊。
我試過將它設置爲var returnvalue = false;
,但無論點擊哪個按鈕,它都不會得到不同的值。
任何幫助表示讚賞!謝謝!
編輯:
我相信我發現爲什麼變量不被設置。我從另一個對話框的click
事件中調用這個對話框,當用戶點擊父對話框的「保存」按鈕後,彈出這個對話框。現在,由於它包含在一個函數中,它不會等待我的輸入,也就是說,它不會「看到」我單擊了「確定」或「取消」。我怎樣才能解決這個問題?
非常有意義。我現在就試試 – Jose
延期的東西太棒了!我只是不知道你是否使用jqueryUI widget工廠。 – DefyGravity
我會將您的答案標記爲解決方案,因爲它確實解決了我的問題。但似乎我將採用延期方法。我很感謝你的幫助:) – Jose