我想寫一個自定義的窗口內確認對話框(基於jQuery UI),我們可以用它來控制窗口的各個方面(按鈕文本等)。我真正喜歡的是控件的行爲與內置的confirm()函數的行爲方式完全相同(調用confirm(),腳本執行暫停直到用戶單擊確定或取消,confirm()返回true或false) 。我環顧四周,發現這個解決方案,而我來的關閉看起來是這樣的:如何重現JavaScript的confirm()函數提供的「等待」功能?
//title = text to be displayed for title
//text = text to be displayed in body of dialog
//func = name of function to be called upon user selection, result will be passed as first parameter
function aw_confirm(title, text, func){
<%= ClientID %>_retVal = null;
<%= ClientID %>_func = func;
<%= ClientID %>_show(title, text);
<%= ClientID %>_waitForSelection(func);
}
function <%= ClientID %>_waitForSelection(func){
if (<%= ClientID %>_retVal != null){
var r = <%= ClientID %>_retVal;
<%= ClientID %>_retVal = null;
func(r);
}
else setTimeout("<%= ClientID %>_waitForSelection(<%= ClientID %>_func)", 10);
}
這是一個aspx控制,因此<%=客戶端ID%> _之前一切爲了使確保沒有人用其他控件中的代碼覆蓋函數。
正如您所看到的,當前的設置需要程序員編寫一個處理程序(這裏稱爲func),以便在用戶進行選擇時調用。我真正喜歡的是aw_confirm()等待用戶做出選擇然後返回。有沒有辦法做到這一點?預先感謝您提供的任何幫助或建議!
你不能做你想做的。該代碼必須被編寫爲未來按鈕點擊事件的處理程序。 – Pointy 2010-09-29 13:42:36
:(我很害怕這個。 – drayfar 2010-09-29 13:49:34