作者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