Bootstrap智能消息提示框。
“我觉得操作成功后,需要一个弹出提示框”,客户说。
“需要吗?我觉得没必要,错误的时候提示,成功时自动跳转就行了!”,我弱弱的答。
“你那样不人性化,听我的,加一个”,客户继续说。
“那好吧!”我继续弱弱的答。
第一关
其实客户的要求,一点都难不倒我,看我的:
ajaxDoneSuccess("订单已支付", "/mem/initDeal/2");
这串代码就是把消息传递到前端。
function tabAjaxDone(json) { YUNM.debug("tab ajaxdone回调函数"); YUNM.ajaxDone(json); if (json[YUNM.keys.statusCode] == YUNM.statusCode.ok || json[YUNM.keys.statusCode] == YUNM.statusCode.info) { var msg = json[YUNM.keys.message]; // 弹出消息提示 YUNM.debug(msg); var thenfunc = null; if ("forward" == json.callbackType) { thenfunc = function() { if (json.forwardURL) { location.href = json.forwardURL; } }; } $.showInfo(msg, thenfunc); } }
1. 页面回调函数执行时,获取服务端传递的消息,同时将后续操作加入到thenfunc中。
2. 紧接着,通过showInfo函数将消息输出。
3. 你想看到showInfo方法,没问题。
$.showInfo = function(str, func) { $.weeboxs.open(str, { boxid : 'yunm_info_box', contentType : 'text', showButton : true, showCancel : false, showOk : true, title : '提示 ', type : 'wee', onclose : func }); };
打开一个weebox弹出框,然后弹出框关闭的时候执行后续函数func。
然后你点击确定或者X号就会执行回调函数跳转。
第二关
“你这不够人性化,不是所有的执行成功都想弹出消息。”客户说。
“好,明白”,我答。
这依然很简单:
ajaxDoneSuccess("", "/mem/initDeal/2"); if (msg) { $.showInfo(msg, thenfunc, YUNM._set.timeout); } else { thenfunc(); }
第三关
“你这还不够人性化,我不想点击确定、关闭,就能够跳转。”客户说。
“好,你想它多长时间自动关闭,才能让你’dont make me wait’”,我喃喃道。
“什么?”,客户把头朝向我,若有所思的问。
“哦,没啥,一会就好”,我懒得给他啰嗦。
这也没啥,不就是加一个timeout嘛,weebox本身就有这个参数。
if (msg) { $.showInfo(msg, thenfunc, YUNM._set.timeout); } else { thenfunc(); }
$.showInfo = function(str, func, timeout) { $.weeboxs.open(str, { boxid : 'yunm_info_box', contentType : 'text', showButton : true, showCancel : false, showOk : true, title : '提示 ' + timeout + "秒后自动关闭", type : 'wee', onclose : func, timeout : timeout }); };