原理是使用bootstrap的Modal插件实现。
一、在前端模板合适的地方,加入Modal展现div元素。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<!-- system modal start --> < div id = "ycf-alert" class = "modal" >
< div class = "modal-dialog modal-sm" >
< div class = "modal-content" >
< div class = "modal-header" >
< button type = "button" class = "close" data-dismiss = "modal" >< span aria-hidden = "true" >×</ span >< span class = "sr-only" >Close</ span ></ button >
< h5 class = "modal-title" >< i class = "fa fa-exclamation-circle" ></ i > [Title]</ h5 >
</ div >
< div class = "modal-body small" >
< p >[Message]</ p >
</ div >
< div class = "modal-footer" >
< button type = "button" class = "btn btn-primary ok" data-dismiss = "modal" >[BtnOk]</ button >
< button type = "button" class = "btn btn-default cancel" data-dismiss = "modal" >[BtnCancel]</ button >
</ div >
</ div >
</ div >
</ div >
<!-- system modal end --> |
二、在前端模板的公共模块,找合适的地方引入bootstrap
1
2
3
4
|
< link rel = "stylesheet" href = "__TPL__/css/photoswipe.css" >
< script type = "text/javascript" src = "__PUBLIC__/js/jquery.min.js" ></ script >
< script src = "__PUBLIC__/bootstrap/js/bootstrap.min.js" ></ script >
|
三、在JS的comon层,加入重写语句。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
//封装alert、confirm window.Modal = function () {
var reg = new RegExp( "\\[([^\\[\\]]*?)\\]" , 'igm' );
var alr = $( "#ycf-alert" );
var ahtml = alr.html();
var _alert = function (options) {
alr.html(ahtml); // 复原
alr.find( '.ok' ).removeClass( 'btn-success' ).addClass( 'btn-primary' );
alr.find( '.cancel' ).hide();
_dialog(options);
return {
on: function (callback) {
if (callback && callback instanceof Function) {
alr.find( '.ok' ).click( function () { callback( true ) });
}
}
};
};
var _confirm = function (options) {
alr.html(ahtml); // 复原
alr.find( '.ok' ).removeClass( 'btn-primary' ).addClass( 'btn-success' );
alr.find( '.cancel' ).show();
_dialog(options);
return {
on: function (callback) {
if (callback && callback instanceof Function) {
alr.find( '.ok' ).click( function () { callback( true ) });
alr.find( '.cancel' ).click( function () { callback( false ) });
}
}
};
};
var _dialog = function (options) {
var ops = {
msg: "提示内容" ,
title: "操作提示" ,
btnok: "确定" ,
btncl: "取消"
};
$.extend(ops, options);
// console.log(alr);
var html = alr.html().replace(reg, function (node, key) {
return {
Title: ops.title,
Message: ops.msg,
BtnOk: ops.btnok,
BtnCancel: ops.btncl
}[key];
});
alr.html(html);
alr.modal({
width: 500,
backdrop: 'static'
});
}
return {
alert: _alert,
confirm: _confirm
}
}();
|
四、在需要的地方调用。
1
2
3
4
5
6
7
8
|
Modal.confirm( {
msg: "商品已成功加入购物车\n是否去购物车查看?"
})
.on( function (e) {
if (e)
location.href = cart_url;
}); |