作者ybite (小犬)
看板Ajax
標題Re: [問題] jConfirm
時間Tue Oct 13 23:46:43 2009
※ 引述《a613204 (胖胖)》之銘言:
: 不好意思 又有新問題了~~
問題在於 jConfirm 他是使用非同步的方式實作的:
: var result;
: jConfirm('Can you confirm this?', 'Confirmation Dialog', function(r) {
: if(r) //按確定的話
: {
: dosomething
: }
: else //按取消的話
: {
: dosomething
: }
: result=r;
// 這時 jConfirm 會把 Confirm 的對話方塊顯示出來
並且設定在你「點擊他介面上按鈕」的時候執行設定的 Callback function
: });
: return result;
// 然後這行會在 Confirm 對話方塊顯示出來之後「馬上」被執行
所以會變成
jConfirm初始→使用者看到確認畫面的同時,return result被執行
→使用者按下是或否之後,匿名函數function(r){}被執行→這時result才被寫入
: 我想讓它傳回 r 的結果 不過發現result並沒有拿到r的值
: 想說改成寫在 dosomething的後面 return r 也不能
: 請問要怎麼改才能正確傳回呢?? 讓result拿到r的值
因為以 jConfirm 這種作法應該不好作到,所以我會反過來問:
為什麼你要用一個Global varible來拿jConfirm的結果?
你想要把 jConfirm 當 confirm 來 if (confirm('abcde?'))用? Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.235
1F:推 a613204:那請問要怎麼樣才能拿到值呢? 10/14 00:20
2F:→ adahsu:我覺得還是乖乖用 confirm() 就好,省掉很多事... 10/14 00:24
3F:推 a613204:沒辦法耶...一定要用這個 沒人知道該怎麼弄嗎? 10/14 00:29
4F:推 adahsu:去看 jAlert 官網作者的看法就是... 『只能這樣沒的改!』 10/14 10:54
5F:→ TonyQ:你沒辦法誰有辦法...XD 10/15 11:30