码迷,mamicode.com
首页 > Web开发 > 详细

弹出框一 之 基于bootstrap和jquery的自定义弹出框

时间:2016-03-28 00:02:08      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:

(function ($) {

    window.Ewin = function () {
        var html = ‘<div id="[Id]" class="modal fade" role="dialog" aria-labelledby="modalLabel">‘ +
                   ‘<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>‘ +
                         ‘<h4 class="modal-title" id="modalLabel">[Title]</h4>‘ +
                       ‘</div>‘ +
                       ‘<div class="modal-body">‘ +
                       ‘<p>[Message]</p>‘ +
                       ‘</div>‘ +
                        ‘<div class="modal-footer">‘ +
        ‘<button type="button" class="btn btn-default cancel" data-dismiss="modal">[BtnCancel]</button>‘ +
        ‘<button type="button" class="btn btn-primary ok" data-dismiss="modal">[BtnOk]</button>‘ +
      ‘</div>‘ +
                     ‘</div>‘ +
                   ‘</div>‘ +
                 ‘</div>‘;


        var dialogdHtml = ‘<div id="[Id]" class="modal fade" role="dialog" aria-labelledby="modalLabel">‘ +
                   ‘<div class="modal-dialog">‘ +
                     ‘<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>‘ +
                         ‘<h4 class="modal-title" id="modalLabel">[Title]</h4>‘ +
                       ‘</div>‘ +
                       ‘<div class="modal-body">‘ +
                       ‘</div>‘ +
                     ‘</div>‘ +
                   ‘</div>‘ +
                 ‘</div>‘;
        var reg = new RegExp("\\[([^\\[\\]]*?)\\]", ‘igm‘);
        var generateId = function () {
            var date = new Date();
            return ‘mdl‘ + date.valueOf();
        }
        var init = function (options) {
            options = $.extend({}, {
                title: "操作提示",
                message: "提示内容",
                btnok: "确定",
                btncl: "取消",
                width: 200,
                auto: false
            }, options || {});
            var modalId = generateId();
            var content = html.replace(reg, function (node, key) {
                return {
                    Id: modalId,
                    Title: options.title,
                    Message: options.message,
                    BtnOk: options.btnok,
                    BtnCancel: options.btncl
                }[key];
            });
            $(‘body‘).append(content);
            $(‘#‘ + modalId).modal({
                width: options.width,
                backdrop: ‘static‘
            });
            $(‘#‘ + modalId).on(‘hide.bs.modal‘, function (e) {
                $(‘body‘).find(‘#‘ + modalId).remove();
            });
            return modalId;
        }

        return {
            alert: function (options) {
                if (typeof options == ‘string‘) {
                    options = {
                        message: options
                    };
                }
                var id = init(options);
                var modal = $(‘#‘ + id);
                modal.find(‘.ok‘).removeClass(‘btn-success‘).addClass(‘btn-primary‘);
                modal.find(‘.cancel‘).hide();

                return {
                    id: id,
                    on: function (callback) {
                        if (callback && callback instanceof Function) {
                            modal.find(‘.ok‘).click(function () { callback(true); });
                        }
                    },
                    hide: function (callback) {
                        if (callback && callback instanceof Function) {
                            modal.on(‘hide.bs.modal‘, function (e) {
                                callback(e);
                            });
                        }
                    }
                };
            },
            confirm: function (options) {
                var id = init(options);
                var modal = $(‘#‘ + id);
                modal.find(‘.ok‘).removeClass(‘btn-primary‘).addClass(‘btn-success‘);
                modal.find(‘.cancel‘).show();
                return {
                    id: id,
                    on: function (callback) {
                        if (callback && callback instanceof Function) {
                            modal.find(‘.ok‘).click(function () { callback(true); });
                            modal.find(‘.cancel‘).click(function () { callback(false); });
                        }
                    },
                    hide: function (callback) {
                        if (callback && callback instanceof Function) {
                            modal.on(‘hide.bs.modal‘, function (e) {
                                callback(e);
                            });
                        }
                    }
                };
            },
            dialog: function (options) {
                options = $.extend({}, {
                    title: ‘title‘,
                    url: ‘‘,
                    width: 800,
                    height: 550,
                    onReady: function () { },
                    onShown: function (e) { }
                }, options || {});
                var modalId = generateId();

                var content = dialogdHtml.replace(reg, function (node, key) {
                    return {
                        Id: modalId,
                        Title: options.title
                    }[key];
                });
                $(‘body‘).append(content);
                var target = $(‘#‘ + modalId);
                target.find(‘.modal-body‘).load(options.url);
                if (options.onReady())
                    options.onReady.call(target);
                target.modal();
                target.on(‘shown.bs.modal‘, function (e) {
                    if (options.onReady(e))
                        options.onReady.call(target, e);
                });
                target.on(‘hide.bs.modal‘, function (e) {
                    $(‘body‘).find(target).remove();
                });
            }
        }
    }();
})(jQuery);

使用例子

   $(function () {
        // Ewin.alert("哈哈哈哈");
        Ewin.confirm({message:"确定删除"}).on(function (e) {
            console.log(e);
        });
    })

技术分享

弹出框一 之 基于bootstrap和jquery的自定义弹出框

标签:

原文地址:http://www.cnblogs.com/nele/p/5327380.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!